欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

小程序微信退款功能实现方法详解【基于thinkPHP】

程序员文章站 2022-05-14 15:20:15
本文实例讲述了小程序微信退款功能实现方法。分享给大家供大家参考,具体如下: ☹. 背景 微信开发中,既然涉及到了微信支付,对于合理的购物网站,必...

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

☹. 背景

  • 微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求
  • 当然,一种方式是登录 微信商户平台,在 交易列表 中进行微信退款操作
  • 但是,如果业务量庞大,作为友好交互,自然需要进行代码实现 微信退款 操作咯

稍作一提,这是针对 小程序退款申请 的方法指导(目测跟公众号退款没啥区别)
理论上,请对应参考文章:

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



☺. 前期准备

  • 工欲善其事, 必先利其器

❶.文档阅读

  • 毕竟都是人家微信平台的东西,使用起来不去阅读,总感觉是对开发人员的不尊重
  • 况且,万一官方不定时地进行了更新,后面的道友们不去阅读很可能会遇到更多的阻碍哦
  • 此处不多赘述,提取着重注意的要点:

a. 请求需要双向证书 详见 【可根据提示,直接下载参考微信支付提供的 demo(php)】
b. 对于请求参数,可以只填写必选项

小程序微信退款功能实现方法详解【基于thinkPHP】

❷. 资源准备

  • 首先,小程序的 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
    小程序微信退款功能实现方法详解【基于thinkPHP】

❷. curl_post_ssl_refund() 方法

  • 具体的使用,请阅读我的注释代码就好
    小程序微信退款功能实现方法详解【基于thinkPHP】

附录:

❶. 实现效果

小程序微信退款功能实现方法详解【基于thinkPHP】

❷.github 源码下载 >>>

  • 强调:如果你的前期准备已经完成,可只需参考源码 wxmini-paydemo\server-php\paycontroller.class.php

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

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