我在使用 paypal checkout-sdk 的沙盒中找不到交易历史记录
Posted
技术标签:
【中文标题】我在使用 paypal checkout-sdk 的沙盒中找不到交易历史记录【英文标题】:I can't find out transaction history in sandbox use paypal checkout-sdk 【发布时间】:2021-10-10 10:47:39 【问题描述】:我使用javacheckout-sdk-1.0.4
开发PayPal支付。我成功向 PayPal 提交订单,获取付款 url。
我用个人账号登录,然后点击continue
按钮。
然后paypal直接重定向到我设置的url。
http://localhost:38001/checkout/submit/result?token=60X99286YV4394812&PayerID=9WXE2YPSNEJSN
我可以在开发人员仪表板中查看 api 调用历史记录。
但是我在我的企业账户和个人账户中看不到任何交易记录。
如何判断我的支付是否成功。
我从这里尝试这个教程
https://developer.paypal.com/docs/business/checkout/server-side-api-calls/create-order/
https://developer.paypal.com/docs/business/checkout/server-side-api-calls/capture-order/
最后paypal返回抓包成功。
Status Code: 201
Status: COMPLETED
Order ID: 1AL061567P026410J
Links:
self: https://api.sandbox.paypal.com/v2/checkout/orders/1AL061567P026410J
Capture ids:
6NY33838LX3268618
但我仍然无法在我的个人测试帐户中看到交易记录。
【问题讨论】:
【参考方案1】:但我在我的企业帐户和个人帐户中看不到任何交易记录。在此处输入图片说明
您看不到任何交易,因为没有交易。除非您显示所需的订单审核页面并在客户返回您的站点时执行所需的捕获 API 调用,否则不会有任何内容。 (如果您想跳过显示评论页面并直接进行 API 调用,那么您应该将 application_context 对象的 user_action 设置为“PAY_NOW”,因此最后一个按钮的文本从“Continue”更改为“Pay Now”并且用户知道不会有评论页面。无论如何,您仍然需要执行 API 调用来捕获)。
您使用的重定向到 PayPal,然后在重定向回后显示评论页面或进行捕获调用的流程是旧的结帐流程,无法提供最佳用户体验。 最好不要使用任何重定向。完全没有。
相反,在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据(没有 html 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.captures[0].id
,PayPal 交易 ID)
将这两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server
【讨论】:
一个完整的事务应该做create order
和capture order
吗?
成功捕获订单将导致交易。事务 ID 在purchase_units[0].payments.captures[0].id
中返回。如果您没有收到该值,则说明您没有交易。
我已经更新了我的问题,我捕获了订单并获取了捕获 ID,但仍然看不到交易。
这是一个已完成的交易,所以它会在那里。确保您使用来自paypal.com/… 的正确沙盒业务帐户登录sandbox.paypal.com
请记住,您必须登录到与您的沙盒客户端 ID 的 REST 应用关联的那个:paypal.com/…以上是关于我在使用 paypal checkout-sdk 的沙盒中找不到交易历史记录的主要内容,如果未能解决你的问题,请参考以下文章
我在 developer.paypal 上的 appID 是啥
为啥我在使用 Paypal 付款后在我的商店中得到一个空白页面?
为啥我在 Django 中使用此调用从 Paypal 收到“内部错误”?