【发布时间】:2013-03-22 10:58:23
【问题描述】:
我一直在使用 PayPals IPN 来接收和处理付款,并将 transactionId 存储为参考。
现在是时候通过我正在开发的系统退还付款了,这就是困难所在。
当在更新的 PHP SDK 中使用将 transactionId 输入到 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。
现在我被困住了。我收集了数千个实时 transactionId。你知道我如何为每笔交易获取一个 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。
-
我想我在主帖中添加了您所要求的内容
-
好了,内容:)
-
哈,是的,它来了
标签: php paypal paypal-ipn paypal-adaptive-payments