有关类似问题的讨论很多,但我找不到确切的答案。
这是问题所在:
我正在尝试使用最新的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),甚至使用真实交易也尝试过-结果是相同的。
你们知道他们为什么与众不同吗?
最佳答案
请仔细查看https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/
SDK返回付款ID,该ID可用于使用GET检索付款资源。付款将在related_resources
部分包含一个或多个交易(在您的情况下,是一个销售交易)。