我一直在使用PayPal IPN接收和處理付款,並將transactionId存儲爲參考。如何從transactionId獲取payKey?
現在已經可以通過我正在開發的系統來退款,現在已經到了掙扎的時候了。
使用時輸入的transactionId到上一個更新的PHP SDK的GetPaymentDetails.php
樣品payKey領域,具有正確的認證信息和應用程序ID,我得到:
Error ID: 580022
Domain: PLATFORM
Severity: Error
Category: Application
Message: Invalid request parameter: payKey with value [REMOVED (transactionId)]
Parameter: Array
這是可以理解的,因爲它是期待payKey。現在,我可以根據規範將$pdRequest->payKey = $payKey;
更改爲$pdRequest->transactionId = $payKey;
。這個現在應該發送的transactionId作爲transactionId的工作,但我得到這個迴應:
Error ID: 520002
Domain: PLATFORM
Severity: Error
Category: Application
Message: Internal Error
好了,東西壞了。我懷疑他們不允許transactionId現在作爲參考,並且沒有更新他們的文檔(典型的)。我懷疑這是因爲我使用的原始SDK包含一個用於transactionId的字段,以及trackingId和另一個標識符。但是現在更新的SDK只要求payKey。
現在我卡住了。我收集了數千個live transactionIds。你知道我怎樣才能爲每筆交易獲得一個payKey,或者解決原來的問題。
感謝
更多信息:
以下是發送的HTTP標頭:
X-PAYPAL-SECURITY-SIGNATURE: [removed]
X-PAYPAL-SECURITY-USERID: [removed]
X-PAYPAL-SECURITY-PASSWORD: [removed]
X-PAYPAL-APPLICATION-ID: [removed]
X-PAYPAL-REQUEST-SOURCE: PHP_SOAP_SDK_V1.4
X-PAYPAL-DEVICE-IPADDRESS: 127.0.0.1
X-PAYPAL-MESSAGE-PROTOCOL: SOAP11
X-PAYPAL-REQUEST-SOURCE: PHP_SOAP_SDK_V1.4
這裏是內容
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body><PaymentDetailsRequest>
<requestEnvelope>
<errorLanguage>en_US</errorLanguage>
</requestEnvelope>
<transactionId>[removed]</transactionId>
</PaymentDetailsRequest></soap:Body>
</soap:Envelope>
要
https://svcs.paypal.com/AdaptivePayments/PaymentDetails
你能分享你的NVP字符串嗎?一定要清除證書。我使用API從我開發的系統(不使用他們的SDK)發出退款,我也使用transactionID。 –
我想我給主帖增加了你要求的內容 –
我們去了,內容:) –