我正在尝试在 Paypal 沙盒中测试退款,但收到的回复令人困惑; 交易 ID 无效。
我已设法确认以下内容:
- 我正在传递从
GetExpressCheckoutDetails
的PAYMENTREQUEST_n_TRANSACTIONID
获得的交易 ID。 - 在从
GetExpressCheckoutDetails
获取交易 ID 并将其传递到RefundTransaction
之间,交易 ID 没有被修改。 - 无论我是否通过
INVOICEID
,都会发生这种情况。 DoExpressCheckoutPayment
的PAYMENTACTION
是Sale
。
我在这里做出了任何明显不正确的假设吗?跟这个是沙盒订单有关系吗(存疑)?我是否从错误的来源获取了交易 ID?
以防万一需要任何细节,我会留下完整的回复...
{
"TIMESTAMP": "2014-01-06T18:15:35Z",
"CORRELATIONID": "cb90afac455c",
"ACK": "Failure",
"VERSION": "109",
"BUILD": "9138168",
"L_ERRORCODE0": "10004",
"L_SHORTMESSAGE0": "Transaction refused because of an invalid argument. See
additional error messages for details.",
"L_LONGMESSAGE0": "The transaction id is not valid",
"L_SEVERITYCODE0": "Error",
"REFUNDSTATUS": "None",
"PENDINGREASON": "None"
}
并且 RefundTransaction 的字段/值调用自身...(即使它是沙箱也编辑凭据)
{
"METHOD": "RefundTransaction",
"TRANSACTIONID": "30888131YM063371A",
"USER": "[redacted]",
"REFUNDTYPE": "Partial",
"CURRENCYCODE": "USD",
"REFUNDSOURCE": "any",
"AMT": 57.21,
"PWD": "[redacted]",
"SIGNATURE": "[redacted]",
"VERSION": 109
}
编辑:(如果罗伯特一段时间后没有更新他的答案,可能会作为答案发布,因为他值得称赞)
PayPal_Robert 指出,在我的 SetExpressCheckout
调用中,我将收件人设置为付款将通过实时 API 进行的实际帐户,因为这是 Sandbox - 我应该发送它到 -facilitator
帐户。
最佳答案
我在沙盒环境中找不到任何具有该 transactionID 的交易 - 跨所有账户。我怀疑它在某处被破坏了。
对于同一个 API 调用者,我唯一发现的是一个交易 ID 为 O-072365850X147461B 的订单,创建于 1 月 2 日。
您能否重新创建整个流程,包括创建新交易并尝试使用它?
如果您仍然遇到问题,请通过 https://paypal.com/mts 向我们提交工单。 (24x7) 或给我发一封电子邮件(个人资料中的地址,但我只在格林威治标准时间工作。)
关于paypal - 使用此 RefundTransaction 操作,为什么我的交易 ID 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956775/