PHP微信app接口退款,PHP接入微信退款接口
微信的退款操作,通过封装与前面支付宝退款除了配置文件,基本一样。
退款代码如下:
use Payment\RefundContext;
use Payment\Common\PayException;
use Payment\Config;
// 生成退款单号 便于测试
function createPayid()
{
return date('Ymdhis', time()).substr(floor(microtime()*1000),0,1).rand(0,9);
}
$config = [
'app_id' => 'wxa244db59a34996fc', // 公众账号ID
'mch_id' => '1331302101',// 商户id
'md5_key' => 'adslkfjiKQJLAIQLJ393201482333333',// md5 秘钥
'notify_url' => 'http://test.helei.com/pay-notify.html',
'time_expire' => '14',
// 涉及资金流动时 退款 转款,需要提供该文件
'cert_path' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wx' . DIRECTORY_SEPARATOR . 'apiclient_cert.pem',
'key_path' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'wx' . DIRECTORY_SEPARATOR . 'apiclient_key.pem',
];
// 退款数据
$reundData = [
'refund_no' => createPayid(),
'refund_data' => [
['transaction_id' => '4007572001201607098672633287', 'amount' => '5', 'refund_fee' => '5', 'reason' => '微信测试金额退款'],
],
];
$refund = new RefundContext();
try {
// 微信退款
$type = Config::WEIXIN;
$refund->initRefund(Config::WEIXIN, $wxconfig);
$ret = $refund->refund($reundData);
} catch (PayException $e) {
echo $e->errorMessage();exit;
}
var_dump($ret);
当前sdk支付宝可一次退款多笔数据。微信仅能每次退款1笔(如果想要实现一次退订多笔订单,可在客户端通过循环来处理。)
接下来解释下相关的配置信息
请求参数
参数
参数名
参数说明
是否必须
transaction_id
微信交易号
微信系统中的交易流水号,可用于查询订单状态
是
amount
总金额
微信交易对应的交易总金额
是
refund_fee
退款金额
本次申请的退款金额,退款金额不能大于总金额
是
reason
退款理由
退款的理由,可在用户端查看到
是
响应数据
参数
参数名
参数说明
是否必须
is_success
成功标识
请求是否成功,T:成功,F:失败
是
error
错误提示
只有is_success=F时才返回
否
response
响应数据
查询成功后返回的数据,一个数组,is_success=T时返回
否
response 数据描述
参数
参数名
参数说明
是否必须
transaction_id
微信订单号
微信订单号,下单成功后,微信返回
是
order_no
商户订单号
商户系统内部的订单号
是
refund_no
商户退款单号
商户退款单号
是
refund_id
微信退款单号
微信退款单号
是
refund_fee
申请退款金额
退款总金额,单位为元(已被我处理),可以做部分退款
否
amount
订单金额
订单总金额,单位为元,最多两位小数
否
PHP微信app接口退款,PHP接入微信退款接口相关推荐
- Java微信公众平台开发(一)--接入微信公众平台
转载自崔用志博客:http://www.cuiyongzhi.com/ 前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我 ...
- Java微信公众平台开发(一)——接入微信公众平台
前面几篇文章一直都在说微信公众平台的开发准备工作,那么从这篇开始我们就将正式的进入JAVA微信公众平台开发的整个流程,那么这篇我们开始聊聊如何将我们的服务端和微信公众平台对接! (一)接入流程解析 在 ...
- 微信APP支付(基于Java实现微信APP支付)
步骤: 导入maven依赖 <!--微信支付--><dependency><groupId>com.github.wxpay</groupId>< ...
- php微信jsapi支付小结,ThinkPHP接入微信支付 - JSAPI支付
一.支付准备 二.获取用户openid 首先,到微信公众平台后台 - 设置 - 网页授权域名(别忘了添加开发者) // 在头部引入WechatPubService.php文件,见附录一 use app ...
- java实现仿微信app聊天功能_Android仿微信语音聊天功能
本文实例讲述了Android仿微信语音聊天功能代码.分享给大家供大家参考.具体如下: 项目效果如下: 具体代码如下: AudioManager.java package com.xuliugen.we ...
- 微信公众号一、接入微信并实现机器人自动回复功能
一.说明 微信公众平台 https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN 测试平台 https://mp.w ...
- Android微信App 分享功能调整,Android 微信SDK分享功能(1)
转于:http://blog.csdn.net/freesonhp/article/details/10296141 ----------------------------------------- ...
- 微信公众号 - H5 网页接入微信支付(JSAPI)
前言 假设您已经申请成为微信商户(认证)且各项配置弄好了,并且开通 JSAPI 支付等,只差代码(前端)编写. 如果你之前不了解,强烈建议 先看一遍如下标注的文档: [官方文档]网页客户端(H5),需 ...
- php微信app支付2次签名,微信APP支付,第二次生成签名问题
官方文档有下面这句话 文档地址 步骤3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP.参与签名的字段名为appId,partnerId,prepayId,n ...
- Taro-RN使用 react-native-wechat-lib 集成微信支付-IOS(从微信注册应用到应用接入微信支付)全*
组件库版本 "@tarojs/taro": "3.3.9", "@tarojs/taro-rn": "^3.3.9", ...
最新文章
- 数据库 sqlite top写法
- ESP8266常用脚本命令之一
- openresty开发系列35--openresty执行流程之5内容content阶段
- 设计模式-由浅到深的单例模式
- java读取文件内容,文件头有\ufeff
- 鼠标控制视角wasd移动_绝地求生:为什么控制方向键是WASD?网友:就不能是其他键位吗?...
- 生成注释_java基础- Java编程规范与注释
- 马斯克自曝曾寻求苹果600亿美元收购特斯拉 但库克拒绝会面
- LeetCode 147. Insertion Sort List
- PS 前端技能一 白色背景图片变为透明的图片
- 最新EXCEL使用技巧大全
- Bootstrap导航栏示例
- 干净简便的HTML5文档查看器——GroupDocs.Viewer
- WordCounter.icu - 一个简单的在线实时字数统计工具
- 中国各地商人性格大曝光
- 我只是穴居人-克拉克/惠勒定律的汉塞尔曼推论
- DOM基础笔记——DOMTokenList
- 众利币开发与模式设计
- iOS监控-野指针定位
- ddt数据的处理——@data(),@unpack
热门文章
- 凌恩客户文献|《ISME》解析土壤侵蚀对微生物群落结构以及网络功能复杂性影响
- drop python_用Python做自己的AirDrop 1 - 环境搭建
- application octet stream java_java – JSP下载 – application / octet-stream
- python自动化plc_PYTHON – 让“Monty 语言”进入自动化行业:第 4 部分
- swiper的基本使用
- caj转word是怎么进行转换的
- html5弹幕制作(探索ing)
- 关于程序员的那些段子,你能看懂几个?
- 2. 查询表product——统计所有库存商品的总价值
- word文档css格式化,CSS的Word中的列表详解