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

标签 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

当我尝试通过使用此交易 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 Sandbox test account site -> Notifications ,测试交易 ID 完全不同。对于上述交易,交易ID为: 5DY75733624918945

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

根据文档,我应该使用移动应用程序响应中的 ID(此外——我不知道检索交易 ID 的其他方法……)。

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

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

最佳答案

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

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

关于php - PayPal - 无法使用交易 ID (GetTransactionDetails API) 验证付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25148099/

相关文章:

paypal - 处理延迟的 PayPal 付款

php - 通过索引提高查询性能

php - 访问存储在该查询返回的结果中的数据

java - 在 Android 中使用单个计时器与多个计时器来调度 TimerTasks

java - 使用 Intent 从另一个 fragment 调用一个 fragment

ssl - 使用 PHP 为 PayPal 生成 .pem 证书

php - MySQL Varchar 类型输出开始/结束空格

PHP 字符串操作 : Extract hrefs

java - 安卓。 GradientDrawable 设置GradientCenter

php - 如何与 Paypal 整合