PayPal -无法使用交易ID (GetTransactionDetails API)验证支付


PayPal - Unable to verify the payment using Transaction ID (GetTransactionDetails API)

有很多关于类似问题的讨论,但我找不到确切的答案。

问题是:

我正在尝试使用最新的PayPal MSDK库在Android操作系统中集成应用内支付。集成很简单,我可以成功地进行单笔支付,收到适当的响应,直到我必须验证移动支付

在移动应用程序中(使用PayPalConfiguration.ENVIRONMENT_SANDBOX),我收到以下响应:

{
    "client": {
        "environment": "sandbox",
        "paypal_sdk_version": "2.2.2",
        "platform": "Android",
        "product_name": "PayPal-Android-SDK"
    },
    "response": {
        "create_time": "2014-08-05T19:49:19Z",
        "id": "PAY-0D205735ER3716140KPQTKPY",
        "intent": "sale",
        "state": "approved"
    },
    "response_type": "payment"
}
如您所见,交易ID为:PAY-0D205735ER3716140KPQTKPY

当我尝试通过使用此交易ID从服务器向PayPal发出请求来验证付款时,响应总是相同的:

{
"Errors":
     [
        {
        "L_ERRORCODE":"10004",
        "L_SHORTMESSAGE":"Transaction refused because of an invalid argument. See additional error messages for details.",
        "L_LONGMESSAGE":"The transaction id is not valid",
        "L_SEVERITYCODE":"Error"
        }
     ]
}

当我检查PayPal沙盒测试帐户网站->通知,测试交易id是完全不同的。对于上述事务,事务id为: 5 dy75733624918945

如果我在验证请求中使用此交易ID - PayPal的响应是OK的。

根据文档,我应该使用来自移动应用程序响应的id(此外-我不知道其他方式来检索事务id…)。

我正在使用一个测试沙箱帐户,尝试了不同类型的支付(PayPal按钮和CC),甚至尝试了真实的交易-结果是相同的。

你们知道他们为什么不同吗?

请仔细查看https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/

SDK返回一个支付ID,该ID可用于使用GET检索支付资源。付款将包含related_resources部分中的一个或多个交易(在您的示例中,单个销售交易)。