php实现银联商务微信官方账户服务窗口支付示例代码
之前我们了解到银联业务的H5支付,现在H5支付不支持微信支付。最后我们发现银联业务的微信官方账户服务窗口支付可以支持支付宝支付微信支付银联支付
一、接口地址:
测试接口地址:https://qr-test2.chinaums.com/netpay-portal/qmf/webPay.do?
官方界面地址:https://qr.chinaums.com/netpay-portal/qmf/webPay.do?
二.主要参数描述:
该接口使用get参数。接口参数直接放入接口地址后,浏览器直接跳转到该接口
1:instMid
业务类型,直接填写:YUEDANDEFAULT
2:merOrderId
商户订单号
3:中
银联业务微信官方账户服务窗口支付产品商户号
4:msgSrc
来源,如WWW。TEST.COM
5: msgtype(这个参数是否重要,主要区分用什么支付)
消息类型:微信支付使用:WXPay.jsPay、支付宝支付使用:trade.jsPay、银联支付使用:qmf.jspay或qmf.webPay
6:订单描述
订单描述
7:请求时间戳
消息请求时间,格式:yyyy-mm-DD hh :mm 3360s,如2019-10-01 12:12336012
8:tid
银联业务微信官方账户服务窗口支付产品终端号
9:合计金额
以分钟为单位支付的总金额
10:通知Url
付款结果通知地址
11:returnUrl
网页跳转地址
12:签名
签名,将以上参数按照a-z的顺序进行排序,排序后用字符连接,连接后如果有转义字符就去掉,然后用md5加密得到签名
三个。银联商务微信官方账号服务窗口支付示例:
//测试号相关信息$ mdkey=' fcamtnx7mwimsjwnnkdhc 44 mnxtenqejkrrhkjwyrw 2 ysrr ';$ mid=' 898340149000005$ tid=' 88880001$ time=time();$requestTimestamp=日期(' Y-m-d H:i:s ',$ time);$merOrderId=date('YmdHis ')。mt_rand(100000,999999);$ msgType=' qmf.jspay//微信支付:WXPay.jsPay,支付宝支付:trade.jsPay,银联支付:qmf . jspay(qmf . webpay)$ data=[' inst mid '=' yuedenafault ',//业务类型' merOrderId'=$merOrderId,//订单号' mid'=$mid,//商户号' msgSrc'='WWW。TEST.COM ',//消息源' msgType'=$msgType,//消息类型' orderDesc'=' test ',//订单描述' request timestamp '=$ request timestamp,//消息请求时间' tid'=$tid,//终端号' totalmaunt'=' 1 ',//支付金额' notify URL '=' http://d9 VHS 4 . natappfree . cc ',//支付结果通知地址使用状态值判断支付是否成功' returnurl'=' http://d9vhs4通过状态值判断支付是否成功];ksort(数据);重置($ data);$ options=foreach($ data as $ key=$ value){ $ options。=$key。'=' .$值。'';} $ options=rtrim($ options ' ');//如果有转义字符,去掉转义If(get _ magic _ quotes _ GPC()){ $ options=strips($ options);}$sign=md5($options。$ MDKey);$选项。='符号='。$符号;$ URL=' https://QR-test2 . China ums.com/netpay-portal/web pay/pay . do '。$ options//获取网址后,直接跳转支付。付款完成后返回的状态参数值:
四:支付退款
既然有付款,就有退款,那么如何退款呢
1:退款界面
测试界面:https://qr-test2.chinaums.com/netpay-route-server/api/
官方界面:https://qr.chinaums.com/netpay-route-server/api/
2.主要参数描述
(1)msgSrc
来源,例如:WWW。TEST.COM
(2)msgType
来源,直接填写:参考
(3)请求时间戳
消息请求时间,格式为yyyy-mm-DD hh :mm 3360s,例如2019-10-01 12:12336012
(4)分类
商户订单号
(5)中间
业务类型,直接填写YUEDANDEFAULT
(6)中
银联业务微信官方账户服务窗口支付产品商户号
(7)工业贸易署
银联业务微信官方账户服务窗口支付产品终端号
(8)退款金额
退款金额,以分钟为单位
(9)拒绝描述
退款描述
(10)标志
签名
实现与支付中的签名相同
五:退款支付示例
//测试号相关信息$ MDkey=' fcamtnx7mwismjwnhnkdhc 44 mnxtenqejkrrhkjwyrw 2 ysrr ';$ mid=' 898340149000005 $ tid=' 88880001 $请求时间戳=日期(' Y-m-d h : I :s ',time());$data=[ 'msgSrc'='WWW . '' TEST.COM ',//消息来源msgType'='退款',//消息类型请求时间戳'=$请求时间戳,//报文请求时间merOrderId'=$merOrderId,//订单号instMid'=$params['instMid'],//业务类型' mid'=$mid,//商户号tid'=$tid,//终端号refundAmount '=1,//退款金额refundDesc'='测试',//退款说明];ksort(数据);重置($ data);$ options=foreach($ data as $ key=$ value){ $ options .=$key .'=' .$值。'';} $ options=rtrim($ options ' ');//存在转义字符,那么去掉转义if(get _ magic _ quotes _ GPC()){ $ options=strip斜杠($ options);}//签名$sign=md5($options .$ MDKey);$ data[' sign ']=$ sign;$ Client=新客户端();$ response=$ client-create request()-setMethod(' POST ')-setUrl(' https://QR-test 2。中国嗯。com/netpay-route-server/API/')-setData($ data)-setHeaders([' Content-Type '=' application/JSON '])-setFormat(client 3360: format _ JSON)//提交的数据的格式-send();if($ response-isOk){ $ data=$ response-data;if($ data[' RefundStatus ']==' SUCCESS '){//退款成功返回真;} }返回false}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
版权声明:php实现银联商务微信官方账户服务窗口支付示例代码是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。