升级paypal支付到Orders API,测试账号完成支付后没有收到任何款项

Posted

技术标签:

【中文标题】升级paypal支付到Orders API,测试账号完成支付后没有收到任何款项【英文标题】:Upgrading PayPal payment to Orders API, the testing account didn't receive any money after finish the payment 【发布时间】:2021-11-09 23:29:29 【问题描述】:

我正在尝试实现新的 PayPal Orders API,这就是我所做的:

    创建一个开发者帐户,添加一个应用程序名称,然后我就有了 Client Id 和 Secret。 使用 OrderCreateRequest 创建订单 从resposne->result->links获取approvel_url 重定向到这个approvel_url并完成支付 Paypal 将重定向回我的网站。

但是我从来没有从 PayPal 测试账户得到任何东西,请问,我错过了什么?

编辑: 在 No.4 上,当重定向到 PayPal 页面时,不知何故它只在页面上显示“继续”按钮,而不是“付款”按钮。

【问题讨论】:

【参考方案1】:

你不见了:

    向付款人显示订单审核页面。 使用 API 调用捕获订单,该 API 调用(如果成功)将在 purchase_units[0].payments.captures[0] 对象中返回交易 ID。 成功后,显示感谢/确认页面。

没有最终的捕获 API 调用,就没有 PayPal 交易。


您还在使用基于重定向的旧集成方法,该方法适用于旧网站。当前的 PayPal Checkout 集成不使用重定向。完全没有。

不要重定向,而是在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据(没有 html 或文本)。当捕获响应成功时,将其生成的付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.captures[0].id,PayPal 交易 ID)并在发送返回 JSON 之前执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)。

将这两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

【讨论】:

@Perston PHX,感谢您的快速回复!我实际上正在构建一个单页结帐购物车,不会有订单审核页面。我现在看到创建订单后还有两个步骤,捕获订单(No.7)和授权订单(我不知道这是否需要),但我不知道如何实现No.5和No. .7 一起。 @Person PHX,你说新的 REST API 根本不会使用重定向,我想也没有 IPN,请你指出我应该在哪里做我通常做的工作PayPal IPN 通知页面?谢谢! 那些作业(业务逻辑)应该在发送返回 JSON 之前从捕获路由同步触发。 由于您的目标是“构建单页签出”,因此您显然不应该重定向以获取批准。按照上述步骤不使用重定向。 但是如果你做重定向,那么返回必须显示一个订单审查页面,除非你改变了 application_context user_action 所以最后一个按钮不会说“继续”(这是重定向集成的默认设置)

以上是关于升级paypal支付到Orders API,测试账号完成支付后没有收到任何款项的主要内容,如果未能解决你的问题,请参考以下文章

PayPal API v2 取消订单

paypal开发整理文档(14)——PayPal Orders API整理

paypal批量支付api在php中的使用

什么取代了已弃用的 PayPal 自适应支付 API

PHP 支付中的 Paypal API Express Checkout 错误代码 13113

Paypal:Orders API 与 Payments API,并找到更好的文档