你如何从transactionId获得payKey?

Mat*_*kas 9 php paypal paypal-ipn paypal-adaptive-payments

我一直在使用PayPals IPN来接收和处理付款,并将transactionId存储为参考.

现在是时候能够通过我正在开发的系统退还付款,这就是斗争.

当使用GetPaymentDetails.php在更新的PHP SDK中的示例的payKey字段中输入transactionId时,使用正确的身份验证详细信息和应用程序ID,我得到:

Error ID: 580022
Domain: PLATFORM
Severity: Error
Category: Application
Message: Invalid request parameter: payKey with value [REMOVED (transactionId)]
Parameter: Array
Run Code Online (Sandbox Code Playgroud)

这是可以理解的,因为它期待一个payKey.现在,我可以改变$pdRequest->payKey = $payKey;,以$pdRequest->transactionId = $payKey;按规范.现在应该将transactionId作为transactionId发送并运行,但我得到了响应:

Error ID: 520002
Domain: PLATFORM
Severity: Error
Category: Application
Message: Internal Error
Run Code Online (Sandbox Code Playgroud)

好的,所以有些东西被打破了.我怀疑他们现在不允许将transactionId用作参考,并且没有更新他们的文档(典型).我怀疑这是因为我使用的原始SDK包括transactionId的字段,以及trackingId和另一个标识符.但是现在更新的SDK只要求payKey.

现在我被卡住了.我已经收集了数千个实时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
Run Code Online (Sandbox Code Playgroud)

这是内容

<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>
Run Code Online (Sandbox Code Playgroud)

https://svcs.paypal.com/AdaptivePayments/PaymentDetails
Run Code Online (Sandbox Code Playgroud)

Mad*_*han 1

paypal官方网站已经有资源。这是文档的链接 https://cms.paypal.com/mx/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APPaymentDetails

它指出您可以传递 payKey 或 transactionID。两者都会在响应中返回,以便您可以获得 payKey 和 transactionID。

如果您在使用 api 时遇到任何问题,您可以在这里找到 paypal API 入门教程http://coding.smashingmagazine.com/2011/09/05/getting-started-with-the-paypal-api/