微信支付--代金券免充值代金券:接口升级
微信支付–代金券免充值代金券
开通免充值代金券需 进行接口升级:
https://pay.weixin.qq.com/wiki/doc/api/download/mczyscsyl.pdf
接口升级组合: 103+104+105
进行接口升级组合调用前 获取沙箱秘钥:
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=23_1
<?php//生成随机字符串
function generateNonceStr($length = 32)
{// 密码字符集,可任意添加你需要的字符$chars = "abcdefghijklmnopqrstuvwxyz0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= $chars[mt_rand(0, strlen($chars) - 1)];}return $str;
}$paykey = '';//api的key值
$mch_id = '';//商户号
$url = "https://apitest.mch.weixin.qq.com/sandboxnew/pay/getsignkey";
$nonce_str = generateNonceStr();//随机字符串$data = ['mch_id'=>$mch_id,'nonce_str'=>$nonce_str,
];ksort($data);
//签名前完整字符串
$stringA = '';
foreach ($data as $key => $v) {if (is_array($data[$key])) {$stringA .= $key . '=' . $data[$key].'&';$data[$key] = $data[$key];} else {$stringA .= $key . '=' . $v.'&';}
}$stringSignTemp=$stringA."key=$paykey"; //注:key为商户平台设置的密钥key
$sign=strtoupper(MD5($stringSignTemp));//注:MD5签名方式$xml_data = "<xml><mch_id>$mch_id</mch_id><nonce_str>$nonce_str</nonce_str><sign>$sign</sign>
</xml>";echo "<pre>";
print_r($xml_data);
echo "</pre>";$curl = curl_init();
curl_setopt_array($curl, array(CURLOPT_URL => 'https://api.mch.weixin.qq.com/sandboxnew/pay/getsignkey',CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDIRS => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTOMREQUEST => 'POST',CURLOPT_POSTFIELDS => $xml_data,CURLOPT_HTTPHEADER => array('Content-Type: application/xml'),
));$response = curl_exec($curl);
curl_close($curl);
$obj = simplexml_load_string($response,"SimpleXMLElement", LIBXML_NOCDATA);
$arr = json_decode(json_encode($obj),true);echo "<pre>";
print_r($arr);
echo "</pre>";if($arr["return_code"]=="SUCCESS"){echo $arr["sandbox_signkey"];
}Array
([return_code] => SUCCESS[return_msg] => ok[sandbox_signkey] => ea4c9717cd45d11f8351b373dd74cd27
)?>
103:下单 与 查询
<?php
/*** 下单*/$sandbox_signkey = "";$ip = $_SERVER['REMOTE_ADDR'];//终端IP$time = date('mdHis');$req_seq = date('ymdHis'). rand(100, 999); //流水号$mch_id="";//商户号
//生成随机字符串function generateNonceStr($length = 32){// 密码字符集,可任意添加你需要的字符$chars = "abcdefghijklmnopqrstuvwxyz0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= $chars[mt_rand(0, strlen($chars) - 1)];}return $str;}$appid = "";$openid = "";$nonce_str = generateNonceStr();//随机字符串$body = "会员余额充值";//商品描述$out_trade_no=$req_seq;//商户订单号
//$total_fee=$_POST["money"]*100;//标价金额$total_fee="552";//标价金额$spbill_create_ip=$ip;$notify_url="http://mshy.dgsy888888.com//DGKJNEW2/ph/Callback/Recharge_card_balance.php";//通知地址$trade_type="NATIVE";//交易类型$paykey = $sandbox_signkey;$data = ['appid'=>$appid,'mch_id'=>$mch_id,'nonce_str'=>$nonce_str,'body'=>$body,'out_trade_no'=>$out_trade_no,'total_fee'=>$total_fee,'spbill_create_ip'=>$spbill_create_ip,'notify_url'=>$notify_url,'trade_type'=>$trade_type,'openid'=>$openid,'time_start'=>$time,'sign_type'=>"MD5"];ksort($data);
//签名前完整字符串$stringA = '';foreach ($data as $key => $v) {if (is_array($data[$key])) {$stringA .= $key . '=' . $data[$key].'&';$data[$key] = $data[$key];} else {$stringA .= $key . '=' . $v.'&';}}$stringSignTemp=$stringA."key=$paykey"; //注:key为商户平台设置的密钥key$sign=strtoupper(MD5($stringSignTemp));//注:MD5签名方式$xml_data = "<xml><appid>$appid</appid><body>$body</body><mch_id>$mch_id</mch_id><nonce_str>$nonce_str</nonce_str><notify_url>$notify_url</notify_url><out_trade_no>$out_trade_no</out_trade_no><spbill_create_ip>$spbill_create_ip</spbill_create_ip><total_fee>$total_fee</total_fee><trade_type>$trade_type</trade_type><openid>$openid</openid><time_start>$time</time_start><sign_type>MD5</sign_type><sign>$sign</sign>
</xml>";//日志记录$date=date("Y-m-d");//获取当前日期$TxtRes = fopen("log/".$date.".txt","a+");$datetime=date("Y-m-d H:i:s");//获取当前时间fwrite($TxtRes,"datetime=");fwrite($TxtRes,$datetime);fwrite($TxtRes,",hykh=");fwrite($TxtRes,$xml_data);fwrite($TxtRes,"\r\n");fclose($TxtRes);//关闭指针function curls($data){//初始化$curl = curl_init();//设置抓取的url //测试 http://ut.ystpay.cn:8090/ystbms/service/merch.api 正式:http://mch.ystpay.cn/service/merch.apicurl_setopt($curl, CURLOPT_URL, 'https://api.mch.weixin.qq.com/sandboxnew/pay/unifiedorder');//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//执行命令$fanhui = curl_exec($curl);//关闭URL请求curl_close($curl);return $fanhui;}$response = curls($xml_data);$obj = simplexml_load_string($response,"SimpleXMLElement", LIBXML_NOCDATA);$arr = json_decode(json_encode($obj),true);
echo "<pre>";
print_r($arr);
echo "</pre>";<?php
/*** 查询订单*/
$sandbox_signkey = "";
$paykey = $sandbox_signkey;
$mch_id ="";//商户号
$appid = "";
$out_trade_no = "210413115003777"; //订单号
$nonce_str = generateNonceStr();//随机字符串
function generateNonceStr($length = 32)
{// 密码字符集,可任意添加你需要的字符$chars = "abcdefghijklmnopqrstuvwxyz0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= $chars[mt_rand(0, strlen($chars) - 1)];}return $str;
}$data = ['appid'=>$appid,'mch_id'=>$mch_id,'nonce_str'=>$nonce_str,'out_trade_no'=>$out_trade_no,'sign_type'=>"MD5"
];echo "<pre>";
print_r($data);
echo "</pre>";ksort($data);
//签名前完整字符串
$stringA = '';
foreach ($data as $key => $v) {if (is_array($data[$key])) {$stringA .= $key . '=' . $data[$key].'&';$data[$key] = $data[$key];} else {$stringA .= $key . '=' . $v.'&';}
}$stringSignTemp=$stringA."key=$paykey"; //注:key为商户平台设置的密钥key
$sign=strtoupper(MD5($stringSignTemp));//注:MD5签名方式$xml_data = "<xml><appid>$appid</appid><mch_id>$mch_id</mch_id><nonce_str>$nonce_str</nonce_str><out_trade_no>$out_trade_no</out_trade_no><sign_type>MD5</sign_type><sign>$sign</sign>
</xml>";echo "<pre>";
print_r($xml_data);
echo "</pre>";function curls($data)
{//初始化$curl = curl_init();//设置抓取的url //测试 http://ut.ystpay.cn:8090/ystbms/service/merch.api 正式:http://mch.ystpay.cn/service/merch.apicurl_setopt($curl, CURLOPT_URL, 'https://api.mch.weixin.qq.com/sandboxnew/pay/orderquery');//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//执行命令$fanhui = curl_exec($curl);//关闭URL请求curl_close($curl);return $fanhui;
}$response = curls($xml_data);
$obj = simplexml_load_string($response,"SimpleXMLElement", LIBXML_NOCDATA);
$arr = json_decode(json_encode($obj),true);
echo "<pre>";
print_r($arr);
echo "</pre>";
/**
Array
([openid] => wxd930ea5d5a258f4f[sub_mch_id] => Array
(
)[coupon_fee] => 1[cash_fee_type] => CNY
[settlement_total_fee] => 550[nonce_str] => borh40sjmiaxvy0r0vl4wgui1w9r1ie6
[return_code] => SUCCESS
[err_code_des] => SUCCESS
[time_end] => 20210413162354[mch_id] => 1602968454[trade_type] => APP
[trade_state_desc] => ok
[trade_state] => SUCCESS
[coupon_batch_id_0] => 12345[sign] => A1D51BDC34E6830A15CC14D1C6CB6525
[cash_fee] => 550[coupon_id_0] => 10000[coupon_fee_0] => 1[coupon_type_0] => NO_CASH
[is_subscribe] => Y
[return_msg] => OK
[fee_type] => CNY
[bank_type] => CMC
[attach] => sandbox_attach
[device_info] => sandbox
[out_trade_no] => 210413100341248[transaction_id] => 4695581508520210413162354735223[total_fee] => 551[appid] => wx3200bbbdf8b41e1f
[coupon_count] => 1[result_code] => SUCCESS
[err_code] => SUCCESS
)
*/
104:退单 与 查询
<?php/*** 退单申请*/$sandbox_signkey = "";
$paykey = $sandbox_signkey;$mch_id ="";//商户号
$appid = "";
$out_trade_no = "210413115003777";
$nonce_str = generateNonceStr();//随机字符串
$total_fee ="552";//标价金额
$refund_fee = "551";function generateNonceStr($length = 32)
{// 密码字符集,可任意添加你需要的字符$chars = "abcdefghijklmnopqrstuvwxyz0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= $chars[mt_rand(0, strlen($chars) - 1)];}return $str;
}$data = ['appid'=>$appid,'mch_id'=>$mch_id,'nonce_str'=>$nonce_str,'out_trade_no'=>$out_trade_no,'sign_type'=>"MD5",'total_fee'=>$total_fee,'refund_fee'=>$refund_fee
];
ksort($data);
//签名前完整字符串
$stringA = '';
foreach ($data as $key => $v) {if (is_array($data[$key])) {$stringA .= $key . '=' . $data[$key].'&';$data[$key] = $data[$key];} else {$stringA .= $key . '=' . $v.'&';}
}$stringSignTemp=$stringA."key=$paykey"; //注:key为商户平台设置的密钥key
$sign=strtoupper(MD5($stringSignTemp));//注:MD5签名方式$xml_data = "<xml><appid>$appid</appid><mch_id>$mch_id</mch_id><nonce_str>$nonce_str</nonce_str><out_trade_no>$out_trade_no</out_trade_no><sign_type>MD5</sign_type><sign>$sign</sign><total_fee>$total_fee</total_fee><refund_fee>$refund_fee</refund_fee>
</xml>";echo "<pre>";
print_r($xml_data);
echo "</pre>";function curls($data)
{//初始化$curl = curl_init();//设置抓取的url //测试 http://ut.ystpay.cn:8090/ystbms/service/merch.api 正式:http://mch.ystpay.cn/service/merch.apicurl_setopt($curl, CURLOPT_URL, 'https://api.mch.weixin.qq.com/sandboxnew/pay/refund');//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//执行命令$fanhui = curl_exec($curl);//关闭URL请求curl_close($curl);return $fanhui;
}$response = curls($xml_data);
$obj = simplexml_load_string($response,"SimpleXMLElement", LIBXML_NOCDATA);
$arr = json_decode(json_encode($obj),true);
echo "<pre>";
print_r($arr);
echo "</pre>";/*** Array
(
[openid] => wxd930ea5d5a258f4f
[sub_mch_id] => Array
(
)[coupon_fee] => 1
[cash_fee_type] => CNY
[settlement_total_fee] => 550
[nonce_str] => w74izn6aptr91o0d1zd8ms3qk5710mhr
[return_code] => SUCCESS
[err_code_des] => SUCCESS
[time_end] => 20210413163013
[mch_id] => 1602968454
[trade_type] => APP
[trade_state_desc] => ok
[trade_state] => SUCCESS
[coupon_batch_id_0] => 12345
[sign] => F250C60A2A2BCA2ABA325CEFFCC8ED33
[cash_fee] => 550
[coupon_id_0] => 10000
[coupon_fee_0] => 1
[coupon_type_0] => NO_CASH
[is_subscribe] => Y
[return_msg] => OK
[fee_type] => CNY
[bank_type] => CMC
[attach] => sandbox_attach
[device_info] => sandbox
[out_trade_no] => 210413100341248
[transaction_id] => 4818146405820210413163013492461
[total_fee] => 551
[appid] => wx3200bbbdf8b41e1f
[coupon_count] => 1
[result_code] => SUCCESS
[err_code] => SUCCESS
)<?php
/*** 退款查询*/$sandbox_signkey = "";
$paykey = $sandbox_signkey;
$mch_id ="";//商户号
$appid = "";
$out_trade_no = "210413115003777";
$nonce_str = generateNonceStr();//随机字符串function generateNonceStr($length = 32)
{// 密码字符集,可任意添加你需要的字符$chars = "abcdefghijklmnopqrstuvwxyz0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= $chars[mt_rand(0, strlen($chars) - 1)];}return $str;
}$data = ['appid'=>$appid,'mch_id'=>$mch_id,'nonce_str'=>$nonce_str,'out_trade_no'=>$out_trade_no,'sign_type'=>"MD5",
];
ksort($data);
//签名前完整字符串
$stringA = '';
foreach ($data as $key => $v) {if (is_array($data[$key])) {$stringA .= $key . '=' . $data[$key].'&';$data[$key] = $data[$key];} else {$stringA .= $key . '=' . $v.'&';}
}$stringSignTemp=$stringA."key=$paykey"; //注:key为商户平台设置的密钥key
$sign=strtoupper(MD5($stringSignTemp));//注:MD5签名方式$xml_data = "<xml><appid>$appid</appid><mch_id>$mch_id</mch_id><nonce_str>$nonce_str</nonce_str><out_trade_no>$out_trade_no</out_trade_no><sign_type>MD5</sign_type><sign>$sign</sign>
</xml>";echo "<pre>";
print_r($xml_data);
echo "</pre>";
function curls($data)
{//初始化$curl = curl_init();//设置抓取的url //测试 http://ut.ystpay.cn:8090/ystbms/service/merch.api 正式:http://mch.ystpay.cn/service/merch.apicurl_setopt($curl, CURLOPT_URL, 'https://api.mch.weixin.qq.com/sandboxnew/pay/refundquery');//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//执行命令$fanhui = curl_exec($curl);//关闭URL请求curl_close($curl);return $fanhui;
}$response = curls($xml_data);
$obj = simplexml_load_string($response,"SimpleXMLElement", LIBXML_NOCDATA);
$arr = json_decode(json_encode($obj),true);
echo "<pre>";
print_r($arr);
echo "</pre>";*/
必选用例-交易对账单下载
<?php$sandbox_signkey = "";
$paykey = $sandbox_signkey;
$mch_id ="";//商户号
$appid = "";$nonce_str = generateNonceStr();//随机字符串
$bill_date = date("Ymd");function generateNonceStr($length = 32)
{// 密码字符集,可任意添加你需要的字符$chars = "abcdefghijklmnopqrstuvwxyz0123456789";$str = "";for ($i = 0; $i < $length; $i++) {$str .= $chars[mt_rand(0, strlen($chars) - 1)];}return $str;
}$data = ['appid'=>$appid,'mch_id'=>$mch_id,'nonce_str'=>$nonce_str,'bill_date'=>$bill_date,'bill_type'=>"ALL",'sign_type'=>"MD5",
];
ksort($data);
//签名前完整字符串
$stringA = '';
foreach ($data as $key => $v) {if (is_array($data[$key])) {$stringA .= $key . '=' . $data[$key].'&';$data[$key] = $data[$key];} else {$stringA .= $key . '=' . $v.'&';}
}$stringSignTemp=$stringA."key=$paykey"; //注:key为商户平台设置的密钥key
$sign=strtoupper(MD5($stringSignTemp));//注:MD5签名方式$xml_data = "<xml><appid>$appid</appid><mch_id>$mch_id</mch_id><nonce_str>$nonce_str</nonce_str><bill_date>$bill_date</bill_date><bill_type>ALL</bill_type><sign_type>MD5</sign_type><sign>$sign</sign>
</xml>";echo "<pre>";
print_r($xml_data);
echo "</pre>";
function curls($data)
{//初始化$curl = curl_init();//设置抓取的url //测试 http://ut.ystpay.cn:8090/ystbms/service/merch.api 正式:http://mch.ystpay.cn/service/merch.apicurl_setopt($curl, CURLOPT_URL, 'https://api.mch.weixin.qq.com/sandboxnew/pay/downloadbill');//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, false);curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//设置post方式提交curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//执行命令$fanhui = curl_exec($curl);//关闭URL请求curl_close($curl);return $fanhui;
}$response = curls($xml_data);
echo "<pre>";
print_r($response);
echo "</pre>";
//$obj = simplexml_load_string($response,"SimpleXMLElement", LIBXML_NOCDATA);
//$arr = json_decode(json_encode($obj),true);
微信支付--代金券免充值代金券:接口升级相关推荐
- 微信免充值代金券与免充值立减券与单品券活动验收流程
功能介绍 为支持商户免充值营销经费开展运营活动,提升运营效率,微信支付特开发免充值营销产品功能.商户开通该产品功能后,可免费使用微信支付提供的免充值代金券.立减.折扣等营销工具.商户配置使用免充值代金 ...
- 微信服务商开通免充值代金券接口升级验收
微信服务号开通免充值代金券接口升级验收 一.获取沙箱验签秘钥API 准备参数: 1.服务商商户号:mch_id 2.32位随机字符串:nonce_str 3.微信支付商户32位秘钥:key(获取签名s ...
- 微信支付免充值代金券接口升级免费开通步骤
无论是微信支付服务商还是普通商户,在创建代金券或立减折扣时,都希望能够实现免充值,在交易发生时直接抵扣,毕竟充值过程太啰嗦. 但是在微信支付商户平台上开通免充值相关产品(包括微信支付免充值代金券和微信 ...
- php微信支付商户免充值代金券接口升级
//todo 如果没安装该插件可删除该行,并使用参数requestType改为'1' use GuzzleHttp\Client;/*** Class Demo* @package ShopEM\Se ...
- 微信支付开发(6) 收货地址共享接口
关键字:微信支付 收货地址共享 作者:方倍工作室 原文: http://www.cnblogs.com/txw1958/p/weixin-editAddress.html 请看新版教程 微信支付开发 ...
- 浅析微信支付:申请退款、退款回调接口、查询退款
本文是[浅析微信支付]系列文章的第八篇,主要讲解商户如何处理微信申请退款.退款回调.查询退款接口,其中有一些坑的地方,会着重强调. 浅析微信支付系列已经更新七篇了哟-,没有看过的朋友们可以看一下哦. ...
- 浅析微信支付:开通社交立减金活动、创建立减金及领取使用的相关文档和源码
本文是[浅析微信支付]系列文章的第十七篇,主要讲解在在微信平台中,如何创建优惠券,开通社交立减金,并为用户配置发送立减金. 上篇文章已经为大家讲解了如何在微信公众平台创建优惠券并为用户发券,这片文章是 ...
- 浅析微信支付:开通社交立减金活动、创建立减金及领取使用的相关文档和源码...
本文是[浅析微信支付]系列文章的第十七篇,主要讲解在在微信平台中,如何创建优惠券,开通社交立减金,并为用户配置发送立减金. 上篇文章已经为大家讲解了如何在微信公众平台创建优惠券并为用户发券,这片文章是 ...
- 微信支付(商户平台)卡券开发文档
文章目录 简介 代金券 代金券分类 预充值代金券 免充值代金券 发券渠道 二维码发券 营销活动发券 高级API接口发券 核销方式 支付中自动核销券 操作指引 开发前准备 开通代金券权限 下载API证书 ...
最新文章
- ednote服务器运行失败,endnote搜索文献时连不上服务器 Endnote连接服务器问题
- 钢铁平面焊接缺陷检测,有方案、有代码
- java list wordcount,初试spark java WordCount
- 进程线程001 进程线程结构体和KPCR
- mysql+性能优化+命令_MySQL性能优化
- Vue.js学习笔记四
- 怎样在excel表格中画斜线并打字_一日一技丨Excel斜线表头如何制作?标题、表头的4个技巧...
- ubuntu 新建的用户 table 无法补全命令 解决办法
- 简单分析系统开机时间
- react native使用echarts图表
- MongoDB学习笔记(基础操作篇)
- 招标流程及注意事项_资讯详情
- MySQL索引(什么是索引、如何创建索引、什么时候用索引、索引的作用)
- 协方差计算式及python实现
- Win10出现0x8000000b错误如何解决?
- Linux内存管理内存映射以及通过反汇编定位内存错误问题
- 目标转化出价多少_头条信息流广告目标转化出价(ocpc出价)常见问题讲解
- MOS逻辑门(反相器/与门/或门/或非门/与非门)
- 你只管努力,剩下的交给时光---一个南方姑娘的2016北漂之旅
- 赵小楼:《天道》《遥远的救世主》深度解析(17)私募基金的股东们对丁元英的相爱相杀