php实现银联商务公众号+服务窗支付 代码
1.平台下单接口
参考地址
注意:若是微信公众号支付 请使用 qmf.webPay 并在 微信公众号的环境中测试
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';$mid = '898340149000005';$tid = '88880001';$merOrderId = '3194' . 'SH20191120093138668264';$msgSrc = 'WWW.TEST.COM';$time = time();$notifyUrl = $_W['siteroot'] . './addons/xt_agent/payment/yinlian/notify.php';$requestTimestamp = date('Y-m-d H:i:s',$time);$msgType = 'qmf.webPay';//微信支付:WXPay.jsPay,支付宝支付:trade.jsPay,银联支付:qmf.jspay(qmf.webPay)//根据实际情况,回调时携带的参数$attachedData = ['money' => $money,'module' => $module,'number' => $number,'number2' => $number2,'uniacid' => $_W['uniacid'],'acid' => $_W['acid'],];$attachedData = json_encode($attachedData);///转为json类型$data = ['instMid' => 'YUEDANDEFAULT',//业务类型'merOrderId' => $merOrderId,//订单号'mid' => $mid,//商户号'msgSrc' => $msgSrc,//消息来源'msgType' => $msgType,//消息类型'orderDesc' => '测试',//订单描述'requestTimestamp' => $requestTimestamp,//报文请求时间'tid' => $tid,//终端号'totalAmount' => '1',//支付金额'notifyUrl' => $notifyUrl,//支付结果通知地址,结果页面会将返回参数通过post传过来。通过status值来判断是否支付成功'returnUrl' => $notifyUrl,//网页跳转地址,结果页面会将返回参数通过get传过来。通过status值来判断是否支付成功'attachedData' => $attachedData, //携带的参数];ksort($data, SORT_STRING);reset($data);$options = '';$options2 = '';foreach ($data as $key => $value) {$options .= $key . '=' . $value .'&';///注意 参数还要用urlencode函数处理一下$options2 .= $key . '=' . urlencode($value) . '&';}$options = rtrim($options, '&');//存在转义字符,那么去掉转义if(get_magic_quotes_gpc()){$options = stripslashes($options);}$sign = md5($options . $mdKey);$options2 .= 'sign=' . urlencode($sign);///注意 参数还要用urlencode函数处理一下$url = 'https://qr-test2.chinaums.com/netpay-portal/webpay/pay.do?'.$options2;exit('<script>top.window.location.href=\'' . $url . '\'</script>');
2.支付结果查询接口
$msgType = empty($msgType) ? 'query' : $msgType;$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';$mid = '898340149000005';$tid = '88880001';$merOrderId = '3194' . 'SH20191120093138668264';$msgSrc = 'WWW.TEST.COM';$time = time();$notifyUrl = $_W['siteroot'] . '/addons/sz_yi/payment/yinlian/notify.php';$requestTimestamp = date('Y-m-d H:i:s',$time);$data = ['instMid' => 'YUEDANDEFAULT',//业务类型'merOrderId' => $merOrderId,//订单号'mid' => $mid,//商户号// 'msgSrc' => 'WWW.HANGZPXWH.COM',//消息来源'msgSrc' => $msgSrc,//消息来源'msgType' => $msgType,//消息类型'requestTimestamp' => $requestTimestamp,//报文请求时间'tid' => $tid,//终端号];ksort($data, SORT_STRING);reset($data);$options = '';$options2 = '';foreach ($data as $key => $value) {$options .= $key . '=' . $value .'&';}$options = rtrim($options, '&');//存在转义字符,那么去掉转义if(get_magic_quotes_gpc()){$options = stripslashes($options);}$sign = md5($options . $mdKey);$data['sign'] = $sign;$ch = curl_init();///json 格式 请求$data = json_encode($data);$timeout = 5;curl_setopt($ch, CURLOPT_URL, 'https://qr-test2.chinaums.com/netpay-route-server/api/');curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);// dump(123);die;curl_setopt($ch, CURLOPT_POSTFIELDS, ($data));curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//设置header信息application/x-www-form-urlencoded;charset=utf-8 application/jsoncurl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);$output = json_decode($output);
3.订单退款接口
$msgType = empty($msgType) ? 'refund' : $msgType;$instMid = 'YUEDANDEFAULT';//业务类型$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';$mid = '898340149000005';$tid = '88880001';$merOrderId = '3194SH2030erererere6666699';//订单号$msgSrc = 'WWW.TEST.COM';$time = time();$notifyUrl = $_W['siteroot'] . '/addons/sz_yi/payment/yinlian/notify.php';$requestTimestamp = date('Y-m-d H:i:s',$time);$data = ['instMid' => $instMid,//业务类型'merOrderId' => $merOrderId,//订单号'mid' => $mid,//商户号'msgSrc' => $msgSrc,//消息来源'msgType' => $msgType,//消息类型'requestTimestamp' => $requestTimestamp,//报文请求时间'tid' => $tid,//终端号'refundAmount' => 1,//退款金额'refundDesc' => '测试',//退款说明];ksort($data, SORT_STRING);reset($data);$options = '';$options2 = '';foreach ($data as $key => $value) {$options .= $key . '=' . $value .'&';}$options = rtrim($options, '&');//存在转义字符,那么去掉转义if(get_magic_quotes_gpc()){$options = stripslashes($options);}$sign = md5($options . $mdKey);$data['sign'] = $sign;$ch = curl_init();///json 格式 请求$data = json_encode($data);$timeout = 5;curl_setopt($ch, CURLOPT_URL, 'https://qr-test2.chinaums.com/netpay-route-server/api/');curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, ($data));curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);//设置header信息application/x-www-form-urlencoded;charset=utf-8 application/jsoncurl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data)));curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);$output = curl_exec($ch);curl_close($ch);$output = json_decode($output);
- 调试
若不知道支付结果通知地址返回的参数,可以通过写文件的方式来观看返回的参数结果
$myfile = fopen("./notify.txt", "w") or die("Unable to open file!"); //创建或打开文件$post2 = json_encode($post);//根据通知地址返回的是get还是post方式 fwrite($myfile, $post2);
fclose($myfile); // 关闭文件
(1)当notify.php 文件代码,不执行时,可以将returnUrl的路径=notifyUrl的路径,观看是否为路径错误,或是否为notify.php因代码错误而无法执行。
(2)若因notify.php代码错误而无法执行。可以通过浏览器访问notifyUrl路径来观看notify.php是否是代码错误,而无法执行
php实现银联商务公众号+服务窗支付 代码相关推荐
- java对接银联商务公众号+服务窗支付(1)
java实现银联商务公众号+服务窗对接----支付下单 GitLab地址:https://gitlab.com/982837387/UnionPayGetWay.git 本文对接银联商务公众号+服务窗 ...
- java对接银联商务公众号+服务窗支付(5)
java实现银联商务公众号+服务窗对接----订单撤销 本文对接银联商务公众号+服务窗支付,实现支付下单.订单查询.订单退款.退款查询和订单关闭几个功能,使用到银联商务的公众+服务窗支付接口规范,请自 ...
- java对接银联商务公众号+服务窗支付(4)
java实现银联商务公众号+服务窗对接----退款查询 本文对接银联商务公众号+服务窗支付,实现支付下单.订单查询.订单退款.退款查询和订单关闭几个功能,使用到银联商务的公众+服务窗支付接口规范,请自 ...
- java对接银联商务公众号+服务窗支付(2)
java实现银联商务公众号+服务窗对接----下单查询 本文对接银联商务公众号+服务窗支付,实现支付下单.订单查询.订单退款.退款查询和订单关闭几个功能,使用到银联商务的公众+服务窗支付接口规范,请自 ...
- java对接银联商务公众号+服务窗支付(3)
java实现银联商务公众号+服务窗对接----订单退款 本文对接银联商务公众号+服务窗支付,实现支付下单.订单查询.订单退款.退款查询和订单关闭几个功能,使用到银联商务的公众+服务窗支付接口规范,请自 ...
- 银联支付h5返回商户的地址是post的吗?_php实现银联商务公众号+服务窗支付
一:接口地址: 测试接口地址:https://qr-test2.chinaums.com... 正式接口地址:https://qr.chinaums.com/netpa... 二:主要参数说明: 接口 ...
- 服务号php代码示例,php实现银联商务公众号+服务窗支付的示例代码
之前我们学习了银联商务的H5支付,但是现在H5支付不支持微信支付,最后发现银联商务的公众号+服务窗支付可以支持支付宝支付+微信支付+银联支付 一:接口地址: 测试接口地址:https://qr-tes ...
- php 工商银行公众号支付代码_php实现银联商务公众号+服务窗支付
一:接口地址: 二:主要参数说明: 接口使用的是get传参,直接将接口参数放到接口地址后,此接口是由浏览器直接跳转到接口 1:instMid 业务类型,直接填入:YUEDANDEFAULT 2:mer ...
- 微信公众号 php支付代码,微信支付PHPSDK之微信公众号支付代码详解
这里假设你已经申请完微信支付 1. 微信后台配置 如图 我们先进行测试,所以先把测试授权目录和 测试白名单添加上.测试授权目录是你要发起微信请求的哪个文件所在的目录. 例如jsapi 发起请求一般是j ...
最新文章
- Arrays.sort()源码分析
- c语言动态的申请矩阵存储空间,C语言中二维数组如何申请动态分配内存
- “花书”的佐餐,你的线性代数笔记
- Mbox vs Maildir - 两者原理和区别
- POJ2182 HDU2711 Lost Cows【树状数组+线段树】
- python怎么读音发音英语-python style是什么意思
- 海康威视监控工具-IVMS-4200不同系统兼容性问题汇总
- h2 不能访问localhost_Spring 配置的 H2 控制台 frameOptions 导致无法访问
- 3月20 Ubuntu里运行脚本示例
- 【Android游戏开发之四】Android 游戏框架(一个游戏角色在屏幕行走的demo)
- A8. 无人机编队飞行定位分析与讨论-大结局
- Springboot配置文件
- 1、Python3.9版本官网下载安装教程
- Linux如何使用mail命令给outlook邮箱发送邮件
- Luogu P3403 跳楼机|同余最短路
- 法拉克机器人自动怎么调_FANUC机器人:参考位置功能介绍与设定方法
- matlab八分之一中点画圆算法,中点八分画圆算法
- 有了它,Python“咸鱼”迅速翻身!
- 华容道 java_Java-华容道
- iOS wifi 路由器 连接