100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 微信批量退款php 微信支付退款接口详解

微信批量退款php 微信支付退款接口详解

时间:2022-06-20 01:44:55

相关推荐

微信批量退款php 微信支付退款接口详解

微信支付有2个退款相关的接口,分别是申请退款API和查询退款API,这2个接口在实际微信支付开发中都会用到。其中申请退款API因为安全性,需要使用证书,证书在商户平台后台下载.

申请退款接口支持一年以内的订单退款,可以分批退款,每个批次的退款订单号要不一样,分批退款的总金额不能超过原订单金额.

接口本身没有批量退款的能力,但是从程序的角度只要循环调用申请退款接口就可以了.

通常的流程是如上图所示:

1. 第一步营业员在POS端(收银软件端)发起退款请求,请求发送到商户的后台,通常是POS厂商或者微信支付服务商的后台。

2. 商户后台收到POS端发来的请求以后,根据微信支付的接口,向微信支付后台发起退款请求,具体接口见这里

3. 微信支付后台会处理退款请求,然后回复结果给商户的后台,返回结果的描述也在这个页面

4.1 商户后台如果收到微信支付退款成功(result_code是SUCCESS),那么返回退款成功的结果给POS端,整个流程结束

4.2 商户后台如果收到退款结果是失败(result_code是FAIL),如果err_code是SYSTEMERROR,那么用相同的参数再次调用申请退款API(回到第二步),如果是其他err_code,直接返回POS端退款失败

5. 商户后台如果没有收到退款的结果(由于丢包或者微信支付服务器异常),那么商户后台应该调用查询退款接口,接口文档在这里,调用查询退款接口时,使用微信订单号或者商户订单号或者商户退款单号,不要使用微信退款单号.

6. 微信支付后台会立即返回此笔订单的退款状态给商户的后台,result_code是SUCCESS代表退款受理成功,result_code是FAIL代表不成功,退款的状态(refund_status)有以下几种需要分别处理:

a. SUCCESS 退款成功,此时result_code是SUCCESS

b. FAIL,说明退款失败, 商户用原来的退款订单号重新发起退款,回到第二步

c. PROCESSING 说明退款处理中,可以返回给POS端退款成功。微信支付后台会保证退款成功,如果商户金额不够的话,微信支付后台会定时重试,直到钱够退款并且退款成功为止.

d. NOTSURE表示未确定,表示需要商户用原来的退款订单号重新发起,也就是第二步用一样的退款订单号重新发起

e. CHANGE 表示用户退款给用户银行时,发现用户的卡作废或者冻结了,这时候钱会还给商户,那就需要商户人工操作,通过线下或者财付通转账的方式退款

另外,微信支付申请退款支持重入,可以用同一个订单号再次发起退款,如果订单在退款中还是返回成功,如果订单已经完成退款,那么返回错误.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。