小程序微信退款功能实现方法详解【基于thinkPHP】
时间:2022-07-27
本文章向大家介绍小程序微信退款功能实现方法详解【基于thinkPHP】,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
本文实例讲述了小程序微信退款功能实现方法。分享给大家供大家参考,具体如下:
☹. 背景
- 微信开发中,既然涉及到了微信支付,对于合理的购物网站,必定会有用户退款请求
- 当然,一种方式是登录 微信商户平台,在
交易列表
中进行微信退款操作 - 但是,如果业务量庞大,作为友好交互,自然需要进行代码实现 微信退款 操作咯
稍作一提,这是针对
小程序退款申请
的方法指导(目测跟公众号退款没啥区别) 理论上,请对应参考文章:小程序微信支付 实例配置详解
编程语言: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
- php概述
- php教程
- php环境搭建
- PHP书写格式
- php变量
- php常量
- PHP注释
- php数组
- php字符串 string
- PHP整型 integer
- PHP浮点型 float
- php布尔型
- php数据类型之数组
- php数据类型之对象
- php数据类型之null
- php数据类型之间的转换
- php运算符
- php表达式
- PHP循环控制
- PHP流程控制
- php函数
- php全局变量
- PHP魔术变量
- php命名空间
- php 日期
- PHP包含文件
- php文件
- PHP 文件上传
- php Cookies
- php Sessions
- php email
- php安全email
- php错误处理
- PHP异常处理
- php过滤器
- PHP 高级过滤器
- php json
- php 表单
- PHP MySQL 简介
- PHP 连接 MySQL
- php创建数据库
- php 创建表
- php mysq 插入数据
- PHP MySQL 插入多条数据
- PHP MySQL 预处理语句
- php mysql 读取数据
- php mysql where
- PHP MySQL Order By
- PHP MySQL Update
- PHP MySQL Delete
- php ODBC
- k8s部署zookeeper集群
- dotnet 使用 SemaphoreSlim 可能的内存泄露
- WPF 绑定继承的样式提示 只能根据带有基类型 IFrameworkInputElement 的目标类型的 Style 样式
- 29.opengl高级光照-视差贴图
- SpringBoot集成Mybatis开启下划线格式的数据自动转换成小驼峰格式
- WPF 列表右键菜单比较符合 MVVM 的命令绑定方法
- Group Sample:一个简单有效的目标检测涨点Trick
- PyTorch版CenterNet数据加载解析
- WPF 使用 HandyControl 给 ListView 添加漂亮的表头效果
- kali2020 忘记密码
- 低比特量化之DoreFa-Net理论与实践
- 不用数组求多个数的最小值
- 小程序 Tip | 文档、环境、开发工具界面与特性
- 大佬的思路就是不一样,这是我见过最简洁又清晰的SSM框架整合
- SQL Server重置自增的值为0