. 背景
微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求
当然,一种方式是登录 微信商户平台,在
交易列表
中进行微信退款操作但是,如果业务量庞大,作为友好交互,自然需要进行代码实现 微信退款 操作咯
稍作一提,这是针对
小程序退款申请
的方法指导(目测跟公众号退款没啥区别)
理论上,请对应参考文章:
编程语言:PHP 使用框架:ThinkPHP3.2.3 (我也觉得过时了,算了,框架啥的只是个壳子而已!)
. 前期准备
工欲善其事, 必先利其器
.文档阅读
毕竟都是人家微信平台的东西,使用起来不去阅读,总感觉是对开发人员的不尊重
况且,万一官方不定时地进行了更新,后面的道友们不去阅读很可能会遇到更多的阻碍哦
此处不多赘述,提取着重注意的要点:
a. 请求需要双向证书 详见 证书使用 【可根据提示,直接下载参考微信支付提供的 Demo(PHP)】
b. 对于请求参数,可以只填写必选项
. 资源准备
首先,小程序的
appid
,和微信支付所需的mch_id
缺一不可其次,提前将获得的双向证书放置于自己的项目中,并记录其访问的
绝对路径
再者,需要获取订单进行支付时所保存的回调数据,其
json
字符串形式如下:
{ "appid":"wx81111223333444bc0", "bank_type":"CFT", "fee_type":"CNY", "is_subscribe":"N", "nonce_str":"t8wcdduity6f6k5acng33wzv5z56o7sh", "openid":"okxsf5YWzAzEPNoV31IRqft-fa1c", "out_trade_no":"20180000011119M15362284007942", "return_code":"SUCCESS", "time_end":"20180906180644", "trade_type":"JSAPI", "transaction_id":"4200000171201809060657362048" }
上面的
json
字符串是极为重要的,不然无法追索微信支付订单信息
前提是在实现微信支付
时就已经做了回调保存
▓. 代码实现
如果你的前期准备已经完成,可直接参考源码
wxMini-PayDemo\Server-PHP\PayController.class.php
其实,核心方法只有两个,介绍如下:
. payRefund()
方法
请使用
post
请求方式,传参订单号和退款金额,请认真阅读注释信息,毕竟每个人的业务逻辑都不同重要的就是获取
array 数组
形式的$wxPayResultJsonRes
. curl_post_ssl_refund()
方法
具体的使用,请阅读我的注释代码就好
附录:
. 实现效果
作者:moTzxx
链接:https://www.jianshu.com/p/0eceb5fe852b