本文实例讲述了小程序微信退款功能实现方法。分享给大家供大家参考,具体如下:

☹.背景

微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求

当然,一种方式是登录微信商户平台,在交易列表中进行微信退款操作

但是,如果业务量庞大,作为友好交互,自然需要进行代码实现微信退款操作咯

稍作一提,这是针对小程序退款申请的方法指导(目测跟公众号退款没啥区别)

理论上,请对应参考文章:小程序微信支付实例配置详解

编程语言:PHP使用框架:ThinkPHP3.2.3(我也觉得过时了,算了,框架啥的只是个壳子而已!)

☺.前期准备

工欲善其事,必先利其器

❶.文档阅读

微信小程序-申请退款(官方文档)

毕竟都是人家微信平台的东西,使用起来不去阅读,总感觉是对开发人员的不尊重

况且,万一官方不定时地进行了更新,后面的道友们不去阅读很可能会遇到更多的阻碍哦

此处不多赘述,提取着重注意的要点:

a.请求需要双向证书详见证书使用【可根据提示,直接下载参考微信支付提供的Demo(PHP)】

b.对于请求参数,可以只填写必选项

微信小程序退款回调 python 微信小程序退款处理_PHP

❷.资源准备

首先,小程序的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

微信小程序退款回调 python 微信小程序退款处理_小程序+调用退款+php_02

❷.curl_post_ssl_refund()方法

具体的使用,请阅读我的注释代码就好

微信小程序退款回调 python 微信小程序退款处理_PHP_03

附录:

❶.实现效果

微信小程序退款回调 python 微信小程序退款处理_微信支付_04

❷.Github源码下载>>>

强调:如果你的前期准备已经完成,可只需参考源码wxMini-PayDemo\Server-PHP\PayController.class.php

更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《ZendFrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

您可能感兴趣的文章:Thinkphp5微信公众号token验证不成功的原因及解决方法Thinkphp5微信小程序获取用户信息接口的实例详解ThinkPHP实现微信支付(jsapi支付)流程教程详解基于thinkPHP实现的微信自定义分享功能示例thinkPHP微信分享接口JSSDK用法实例thinkphp项目如何自定义微信分享描述内容thinkphp微信开之安全模式消息加密解密不成功的解决办法ThinkPHP框架实现的微信支付接口开发完整示例ThinkPHP框架整合微信支付之JSAPI模式图文详解thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例