主頁 > 知識(shí)庫 > php實(shí)現(xiàn)銀聯(lián)商務(wù)公眾號(hào)+服務(wù)窗支付的示例代碼

php實(shí)現(xiàn)銀聯(lián)商務(wù)公眾號(hào)+服務(wù)窗支付的示例代碼

熱門標(biāo)簽:熱線電話機(jī)器人 事業(yè)單位如何百度地圖標(biāo)注 天津營銷電話機(jī)器人加盟代理 南寧crm外呼系統(tǒng)平臺(tái) 電銷招聘機(jī)器人 格陵蘭島地圖標(biāo)注 太原極信防封電銷卡 福泉電話機(jī)器人 地圖標(biāo)注入哪個(gè)科目

之前我們學(xué)習(xí)了銀聯(lián)商務(wù)的H5支付,但是現(xiàn)在H5支付不支持微信支付,最后發(fā)現(xiàn)銀聯(lián)商務(wù)的公眾號(hào)+服務(wù)窗支付可以支持支付寶支付+微信支付+銀聯(lián)支付

一:接口地址:

測試接口地址:https://qr-test2.chinaums.com/netpay-portal/qmf/webPay.do?

正式接口地址:https://qr.chinaums.com/netpay-portal/qmf/webPay.do?

二:主要參數(shù)說明:

接口使用的是get傳參,直接將接口參數(shù)放到接口地址后,此接口是由瀏覽器直接跳轉(zhuǎn)到接口

1:instMid

業(yè)務(wù)類型,直接填入:YUEDANDEFAULT

2:merOrderId

商戶訂單號(hào)

3:mid

銀聯(lián)商務(wù)的公眾號(hào)+服務(wù)窗支付產(chǎn)品的商戶號(hào)

4:msgSrc

消息來源,如:WWW.TEST.COM

5:msgType(這個(gè)參數(shù)是否重要,主要區(qū)分使用什么進(jìn)行支付)

消息類型:微信支付使用:WXPay.jsPay,支付寶支付使用:trade.jsPay,銀聯(lián)支付使用:qmf.jspay或qmf.webPay

6:orderDesc

訂單描述

7:requestTimestamp

報(bào)文請(qǐng)求時(shí)間,格式為:yyyy-MM-dd HH:mm:ss,如2019-10-01 12:12:12

8:tid

銀聯(lián)商務(wù)的公眾號(hào)+服務(wù)窗支付產(chǎn)品的終端號(hào)

9:totalAmount

支付總金額,單位為分

10:notifyUrl

支付結(jié)果通知地址

11:returnUrl

網(wǎng)頁跳轉(zhuǎn)地址

12:sign

簽名,將上面的參數(shù)按照a-z的順序進(jìn)行排序,排序完成之后用字符連接起來,連接起來之后如果存在轉(zhuǎn)義字符,那么去掉轉(zhuǎn)義字符,然后進(jìn)行md5加密獲取到簽名

三:銀聯(lián)商務(wù)的公眾號(hào)+服務(wù)窗支付實(shí)例:

//測試號(hào)相關(guān)信息
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';
$mid = '898340149000005';
$tid = '88880001';
$time = time();
$requestTimestamp = date('Y-m-d H:i:s',$time);
$merOrderId = date('YmdHis') . mt_rand(100000, 999999);
$msgType = 'qmf.jspay';//微信支付:WXPay.jsPay,支付寶支付:trade.jsPay,銀聯(lián)支付:qmf.jspay(qmf.webPay)
$data = [
  'instMid' => 'YUEDANDEFAULT',//業(yè)務(wù)類型
  'merOrderId' => $merOrderId,//訂單號(hào)
  'mid' => $mid,//商戶號(hào)
  'msgSrc' => 'WWW.TEST.COM',//消息來源
  'msgType' => $msgType,//消息類型
  'orderDesc' => '測試',//訂單描述
  'requestTimestamp' => $requestTimestamp,//報(bào)文請(qǐng)求時(shí)間
  'tid' => $tid,//終端號(hào)
  'totalAmount' => '1',//支付金額
  'notifyUrl' => 'http://d9vhs4.natappfree.cc',//支付結(jié)果通知地址,結(jié)果頁面會(huì)將返回參數(shù)通過post傳過來。通過status值來判斷是否支付成功
  'returnUrl' => 'http://d9vhs4.natappfree.cc',//網(wǎng)頁跳轉(zhuǎn)地址,結(jié)果頁面會(huì)將返回參數(shù)通過get傳過來。通過status值來判斷是否支付成功
];
ksort($data);
reset($data);
$options = '';
foreach ($data as $key => $value) {
  $options .= $key . '=' . $value .'';
}
$options = rtrim($options, '');
//存在轉(zhuǎn)義字符,那么去掉轉(zhuǎn)義
if(get_magic_quotes_gpc()){
  $options = stripslashes($options);
}
$sign = md5($options . $mdKey);
$options .= 'sign=' . $sign;
$url = 'https://qr-test2.chinaums.com/netpay-portal/webpay/pay.do?'.$options;
//獲取到url之后直接跳轉(zhuǎn)即可

支付結(jié)束后返回的status參數(shù)取值:

四:支付退款

既然有支付那么就有退款,那么如何進(jìn)行退款呢

1:退款接口

測試接口:https://qr-test2.chinaums.com/netpay-route-server/api/

正式接口:https://qr.chinaums.com/netpay-route-server/api/

2:主要參數(shù)說明

(1)msgSrc

消息來源,例:WWW.TEST.COM

(2)msgType

消息來源,直接填入:refund

(3)requestTimestamp

報(bào)文請(qǐng)求時(shí)間,格式為yyyy-MM-dd HH:mm:ss,如:2019-10-01 12:12:12

(4)merOrderId

商戶訂單號(hào)

(5)instMid

業(yè)務(wù)類型,直接填入YUEDANDEFAULT

(6)mid

銀聯(lián)商務(wù)的公眾號(hào)+服務(wù)窗支付產(chǎn)品的商戶號(hào)

(7)tid

銀聯(lián)商務(wù)的公眾號(hào)+服務(wù)窗支付產(chǎn)品的終端號(hào)

(8)refundAmount

退款金額,單位為分

(9)refundDesc

退款說明

(10)sign

簽名

實(shí)現(xiàn)方式同支付中簽名相同

五:支付退款實(shí)例

//測試號(hào)相關(guān)信息
$mdKey = 'fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR';
$mid = '898340149000005';
$tid = '88880001';
$requestTimestamp = date('Y-m-d H:i:s',time());
$data = [
  'msgSrc' => 'WWW.TEST.COM',//消息來源
  'msgType' => 'refund',//消息類型
  'requestTimestamp' => $requestTimestamp,//報(bào)文請(qǐng)求時(shí)間
  'merOrderId' => $merOrderId,//訂單號(hào)
  'instMid' => $params['instMid'],//業(yè)務(wù)類型
  'mid' => $mid,//商戶號(hào)
  'tid' => $tid,//終端號(hào)
  'refundAmount' => 1,//退款金額
  'refundDesc' => '測試',//退款說明
];
ksort($data);
reset($data);
$options = '';
foreach ($data as $key => $value) {
  $options .= $key . '=' . $value .'';
}
$options = rtrim($options, '');
//存在轉(zhuǎn)義字符,那么去掉轉(zhuǎn)義
if(get_magic_quotes_gpc()){
  $options = stripslashes($options);
}
//簽名
$sign = md5($options . $mdKey);
$data['sign'] = $sign;
$client = new Client();
$response = $client->createRequest()
  ->setMethod('POST')
  ->setUrl('https://qr-test2.chinaums.com/netpay-route-server/api/')
  ->setData($data)
  ->setHeaders([
    'Content-Type'=>'application/json'
  ])
  ->setFormat(Client::FORMAT_JSON) //提交的數(shù)據(jù)的格式
  ->send();
if ($response->isOk) {
  $data = $response->data;
  if ($data['refundStatus'] == 'SUCCESS') {
    //退款成功
    return true;
  }
}
return false;
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • php 實(shí)現(xiàn)銀聯(lián)商務(wù)H5支付的示例代碼
  • PHP后端銀聯(lián)支付及退款實(shí)例代碼
  • php版銀聯(lián)支付接口開發(fā)簡明教程
  • php銀聯(lián)網(wǎng)頁支付實(shí)現(xiàn)方法

標(biāo)簽:郴州 自貢 佳木斯 寶雞 通化 金華 阿克蘇 香港

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《php實(shí)現(xiàn)銀聯(lián)商務(wù)公眾號(hào)+服務(wù)窗支付的示例代碼》,本文關(guān)鍵詞  php,實(shí)現(xiàn),銀聯(lián),商務(wù),公眾,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《php實(shí)現(xiàn)銀聯(lián)商務(wù)公眾號(hào)+服務(wù)窗支付的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于php實(shí)現(xiàn)銀聯(lián)商務(wù)公眾號(hào)+服務(wù)窗支付的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章