php - 如何从 transactionId 中获取 payKey?

标签 php paypal paypal-ipn paypal-adaptive-payments

我一直在使用 PayPays IPN 接收和处理付款,存储 transactionId 作为引用。

现在是能够通过我正在开发的系统退款的时候了,这就是困难所在。

当在更新的 PHP SDK 中的 GetPaymentDetails.php 示例的 payKey 字段中输入 transactionId 时,使用正确的身份验证详细信息和应用程序 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。

现在我卡住了。我收集了数以千计的实时交易 ID。你知道我如何为每笔交易获取一个payKey,或者解决原来的问题吗。

谢谢

更多信息:

以下是发送的 HTTP header :

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

最佳答案

我有一个建议:

我想您已将所有交易 ID 保存在您的数据库中,

循环所有记录,获取交易id,通过交易id获取paykey并更新相关订单,

然后您可以将交易和支付键值一起用于单个记录。

关于php - 如何从 transactionId 中获取 payKey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15742254/

相关文章:

php - 您如何创建一个包含环绕常用代码的代码块的函数?

javascript - jQuery 帮助删除追加后的 div

c# - 如何代表我的客户使用 Paypal 快速结账?

paypal - 我的网站是否需要 https/ssl 用于 Paypal Express Checkout 以进行定期付款?

php - PayPal 付款完成后更新数据库

php - 邻接表与嵌套集模型

php - 如何将异常对象转换为stdClass?

paypal - 字段比服务器允许的长或短 - Rails 生产环境错误

python - 如何调试 DJango 测试服务器提供的错误 500?

meteor - 本地测试 Paypal IPN