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

时间:2014-08-05 20:52:50

标签: php android paypal transactions

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

问题在于:

我正在尝试使用最新的PayPal MSDK库在Android操作系统中集成应用内付款。整合是直截了当的,我可以成功单笔付款,得到适当的回应,事情还可以,直到我必须verify the mobile payment

在移动应用中(使用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

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

{
"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 Sandbox test account site -> Notifications时,测试交易ID完全不同。对于上述交易,交易ID为: 的 5DY75733624918945

如果我在验证请求中使用此交易ID,则PayPal的响应即可。

根据文档,我应该使用移动应用响应中的id(而且 - 我不知道以其他方式检索事务ID ...)。

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

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

1 个答案:

答案 0 :(得分:1)

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

SDK会返回一个付款ID,可用于使用GET检索付款资源。付款将包含related_resources部分中的一项或多项交易(在您的情况下为单笔销售交易)。