下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >微信支付退款接口详解

微信支付退款接口详解

南有暖村树发布于 2016-03-15 20:59查看:1585回复:3

1458046748734062.jpg

微信支付有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 表示用户退款给用户银行时,发现用户的卡作废或者冻结了,这时候钱会还给商户,那就需要商户人工操作,通过线下或者财付通转账的方式退款


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


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: