E企盈营销工具技术服务商 热线:4006-838-530

小程序微信退款功能实现讲解(PHP方式)

E企盈直播平台营销卖货系统

☹. 背景微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求当然,一种方式是登录 微信商户平台,在 交易列表 中进行微信退款操作但是,如果业务量庞大,作为友好交互,自然需要进行代码实现 微信退款 操作咯稍作一提,这是针对 小程序退款申请 的方法指导  ——(目测跟公众号,APP退款 都没啥区别)理论上,请对应参考文章:小程序微信支付 实例配置详解 编程语言: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-PayDemoServer-PHPPayController.class.php其实,核心方法只有两个,介绍如下:❶. payRefund() 方法请使用 post 请求方式,传参订单号和退款金额,请认真阅读注释信息,毕竟每个人的业务逻辑都不同重要的就是获取 array 数组形式的 $wxPayResultJsonRes❷. curl_post_ssl_refund() 方法具体的使用,请阅读我的注释代码就好附录:❶. 实现效果❷.Github 源码下载 >>>强调:如果你的前期准备已经完成,可只需参考源码 wxMini-PayDemoServer-PHPPayController.class.php补充:(2019-06-14)当你的退款金额比订单支付金额高时,会提示找不到数组索引 result_code, 所以需要对方法 payRefund() 稍加修改!!注意(2019-12-17)后期使用过程中,出现了一种情况:后台点击退款操作,但是微信平台直接退还了两笔钱分析情况是: 作为批量支付,付款额度较高 但是,作为接口退款操作时,out_refund_no 没有保证唯一性(使用的是时间戳+随机数)请求退款 大于1000的金额,实际只退了一元!分析代码的实现逻辑,发现,因为之前使用过number_format()进行了数据的格式化导致后面再转化为 float类型是出现错误推荐参考文章:【PHP关于金额数值的处理,number_format()与round()的使用】

赞(0) 打赏
未经允许不得转载:E企盈小程序开发-热线:4006-838-530 » 小程序微信退款功能实现讲解(PHP方式)
分享到: 更多 (0)
E企盈小程序直播营销卖货系统
E企盈直播平台营销卖货系统

评论 抢沙发

E企盈小程序开发

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏