Php 您如何从transactionId获取支付密钥?

Php 您如何从transactionId获取支付密钥?,php,paypal,paypal-ipn,paypal-adaptive-payments,Php,Paypal,Paypal Ipn,Paypal Adaptive Payments,我一直在使用PayPals IPN接收和处理付款,并将transactionId存储为参考 现在是时候通过我正在开发的系统来退款了,这就是斗争所在 在更新的php SDK中,在GetPaymentDetails.php示例的payKey字段中输入transactionId,并使用正确的身份验证详细信息和应用程序id时,我得到: Error ID: 580022 Domain: PLATFORM Severity: Error Category: Application Message: Inva

我一直在使用PayPals 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
这是可以理解的,因为它期待一个付费钥匙。现在,我可以更改
$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只要求支付密钥

现在我被卡住了。我收集了数千个实时事务ID。您知道如何为每笔交易获取支付密钥,或修复原始问题吗

谢谢

更多信息: 以下是发送的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>

贝宝官方网站上已经有一个可用的资源。 这是文档的链接

它声明您可以传递payKey或transactionID。这两个都会作为响应返回,以便您可以获取payKey和transactionID

如果您在使用api方面有任何问题,可以在此处找到paypal api入门教程

我有一个建议:

我想您的数据库中保存了所有事务ID

循环所有记录,获取交易id,按交易id获取支付密钥,并更新相关订单


然后,您可以将事务和paykey值一起用于单个记录

使用中的现有跟踪id。支付密钥和其他付款信息将作为响应返回。

您可以共享您的NVP字符串吗?一定要清除凭据。我使用API从我开发的系统(不使用他们的SDK)中发布退款,我也使用transactionID。我想我已经在主要帖子中添加了您所要求的内容:)哈,是的,很快就会出现。是的,我正在试图弄清楚如何从交易Id中获取支付密钥。谢谢查看此文档。
https://svcs.paypal.com/AdaptivePayments/PaymentDetails