Paypal预付款及付款捕获

背景

需求:

  • 公司是做共享充电宝业务的,前段时间公司要求我做一个H5版的Paypa预付款功能来满足现有的业务需要。

业务场景:

  • 付款在用户借出充电宝之前,需要用户授权一笔费用当做用户支付的押金,这笔押金不会超过充电宝本身的价值,我们设定的是5美元,这笔押金由Paypal扣款,但钱不会立即打入公司账户,而是在订单完成后打入公司账户中,如果实际的订单金额小于预支付的押金,将退还差额。

实现

那么现在我们来开始:

1.创建订单

需要注意的是,创建订单,将请求正文中的intent设定为AUTHORIZE,文档中显示这样会在客户付款后授权付款并暂停资金,3天内有效,下面是我的例子:

Paypal预付款及付款捕获

2.用户授权订单

在创建订单完成后的返回中,我们可以看到

Paypal预付款及付款捕获

内部跳转至该页面,完成用户对订单的授权。该页面是paypal获取用户授权的页面,在创建订单时填写return_url,在授权成功后跳转至该页面,一般为前台页面

3.授权订单付款
返回如下:

Paypal预付款及付款捕获

我的请求如下:

Paypal预付款及付款捕获

注意,该步骤需要获取 authorization_id 

4.获取授权付款
我的请求如下:

Paypal预付款及付款捕获

    如果你到了这一步,完成后查看你的测试账户是否有成功扣款,可能会有一点延迟,多刷新几次页面

因为我用的是沙盒环境,正式环境下请参看官方文档修改部分参数。
如果有遇到和我同样需求且遇到困难的朋友,请私信我,我会及时回复

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5

请教下,我在测试环境发现paypal回调延迟太久了,达到10多秒,不知道你有没有遇到,线上会不会出现这样的问题?

1年前 评论

抱歉我当时做的时候没有遇到这种情况 :grin:

1年前 评论

再请教下,沙盒环境和线上环境支付后都是很快就有回调了么?前端支付状态显示是不是根据异步回调更新的

1年前 评论

我之前仅做了这么点内容就离职了,这个项目没有了后续 :joy: 所以我只能凭借我做其他第三方支付的经验来回答你的问题。支付回调的速度是毫秒级的,如果回调太慢建议你找找问题,是否是异步回调需要看返回的信息,也有可能是同步回调,需要你仔细阅读文档,之前我就吃过一次同步回调的亏。

1年前 评论

好的 感谢感谢

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!