支付宝总结】支付和退款"/>
【对接支付宝总结】支付和退款
最近一直在忙支付宝退款的对接,做个总结吧。
支付宝沙箱环境
对接支付宝第一步就是配置沙箱环境,沙箱环境配置中最麻烦的就是一堆公私钥。
商家私钥就是应用公钥(使用支付宝密钥开放平台工具生成的)。而支付宝公钥是使用支付宝生成的应用公钥去换取。
在支付宝配置页面使用应用公钥换取支付宝公钥。
- 在支付需要完成的配置:应用私钥、支付宝公钥、应用网关地址、授权回调地址
- 在代码中的配置:应用私钥、支付宝公钥、应用网关地址、支付宝网关地址
在代码配置中配置应用私钥和支付宝公钥,以及支付宝网关地址,应用网关地址(调用接口的前缀)
沙箱环境_配置密钥: .html?status=iframe&userid=undefined&from=app
对于下面的就是接口的开发了
支付宝支付:
项目当中支付宝支付已经完成,但是也做一个学习总结吧。
支付宝有对应的接口,我们只需要调用他们提供好的接口,提供正确的参数即可。
1、创建支付接口,调用支付宝支付的接口方法
2、创建支付异步通知接口,用来得知支付结果(这个接口就是我们在支付宝上配置的回调地址)
2.1、先进行签名检查校验
参考官方文档demo : =b44d06282.2、签名校验通过之后,可以根据返回的状态码得知支付是否成功。对于成功的情况或者失败的情况做响应的处理
3、除了支付异步通知接口之外,我们还要创建另外一个接口去查询支付状态,这样前端可以一直去轮询调用这个接口,主动获取支付结果。
4、后端还可以写一个定时任务,去定时查询我们所有的订单状态为 CREARTED 状态的, 之后再调用我们的查询支付状态的方法,去查询支付结果,根据成功或者失败的情况,去实现对应的业务逻辑。
支付的大致流程就是这个样子,对于详细的支付接口对接,支付宝官方有对应的文档和demo
支付宝退款
支付宝退款的流程和支付宝支付的流程相似
1、创建退款接口,调用支付宝的退款接口。
详细可以看官方文档,注意的是退款的有效期以及是否退款成功的判断
⚠️⚠️⚠️支付宝的退款的异步通知地址和支付的回调通知地址是一样,这样我们就需要根据回调通知的参数进行判断是支付回调还是退款回调。
来自官方文档;
注意事项
退款时根据异步的返回信息可进行判断,但部分接口存在全额退款时不进行触发异步,因此建议根据退款同步响应参数以及退款查询接口进行判断。
如果交易存在退款,并且交易对应的支付产品支持相关的交易通知触发,会返回带有退款信息(其中包含 gmt_refund,refund_fee)等相关退款参数的异步通知数据,发送到支付接口配置的异步地址上。
注:该情况下的交易退款接口异步通知数据是以支付接口交易状态通知触发情况进行发送的,例如电脑网站支付默认不支持 TRADE_CLOSED 状态的通知,如果全额进行退款操作,交易状态变成 TRADE_CLOSED,是不会往电脑网站支付接口异步地址上发送带有全额退款的异步通知内容信息。
2、在异步通知接口alipayNotification
中,根据回调通知的状态码 如果退款成功的话进行相关的业务操作
3、创建方法去查询支付宝退款是否成功refundQuery
4、创建方法去支付宝查询该交易是否可以退款canRefund
5、创建定时任务,去查询所有退款请求表中所有状态为 CREATED 的记录,调用查询退款是否成功的方法refundQuery
,成功或者失败之行对应的操作
如何判断退款是否成功:
如何实现给用户退款:
在notion 中存放的微信和支付宝支付文档学习资料 :
b站微信支付+支付宝支付学习视频链接
更多推荐
【对接支付宝总结】支付和退款
发布评论