php 實(shí)現(xiàn)銀聯(lián)商務(wù)H5支付的示例代碼
銀聯(lián)商務(wù)H5支付接口文檔:文檔地址
一:H5支付的接口地址:
1:支付寶支付
測(cè)試地址:http://58.247.0.18:29015/v1/netpay/trade/h5-pay
正式地址:https://api-mop.chinaums.com/v1/netpay/trade/h5-pay
2:銀聯(lián)支付
測(cè)試地址:http://58.247.0.18:29015/v1/netpay/uac/order
正式地址:https://api-mop.chinaums.com/v1/netpay/uac/order
二:接口需要的基本參數(shù)
接口使用的是get傳參,直接將接口參數(shù)放到接口地址后,此接口是由瀏覽器直接跳轉(zhuǎn)到接口
(1)authorization
認(rèn)證方式,直接填入:OPEN-FORM-PARAM
(2)appId
銀聯(lián)商務(wù)用戶(hù)H5支付產(chǎn)品的AppID
(3)timestamp
時(shí)間戳,格式為yyyyMMddHHmmss,如20191001121212
(4)nonce
隨機(jī)數(shù)
(5)content
業(yè)務(wù)內(nèi)容,為json格式,并且需要進(jìn)行url編碼,內(nèi)部的具體信息下面介紹
(6)signature
簽名,需要進(jìn)行url編碼,具體生成方式如:Base64_Encode(HmacSHA256(appId + timestamp + nonce + SHA256_HEX(content), AppKey))
業(yè)務(wù)內(nèi)容content參數(shù)內(nèi)部具體參數(shù)說(shuō)明:
1:requestTimestamp
報(bào)文請(qǐng)求時(shí)間,格式為yyyy-MM-dd HH:mm:ss,如2019-10-01 12:12:12
2:merOrderId
商戶(hù)自己生成的訂單號(hào),這里注意:我們需要在我們自己生成的訂單號(hào)前面加上1017前綴
3:mid
銀聯(lián)商務(wù)用戶(hù)H5支付產(chǎn)品的商戶(hù)號(hào)
4:tid
銀聯(lián)商務(wù)用戶(hù)H5支付產(chǎn)品的終端號(hào)
5:instMid
業(yè)務(wù)類(lèi)型,直接填入:H5DEFAULT
6:totalAmount
支付總金額,單位為分
7:expireTime
訂單過(guò)期時(shí)間,格式為yyyy-MM-dd HH:mm:ss,如2019-10-02 12:12:12
8:notifyUrl
支付結(jié)果通知地址
9:returnUrl
網(wǎng)頁(yè)跳轉(zhuǎn)地址
三:H5支付的支付寶支付實(shí)例
$appId = '10037e6f6a4e6da4016a670fd4530012'; $appKey = 'f7a74b6c02ae4e1e94aaba311c04acf2'; $mid = '898310148160568'; $tid = '88880001'; //業(yè)務(wù)內(nèi)容 $time = time(); $content = [ 'requestTimestamp' => date('Y-m-d H:i:s', $time),//報(bào)文請(qǐng)求時(shí)間 'merOrderId' => '1017' . date('YmdHis'),//商戶(hù)訂單號(hào) 'mid' => $mid,//商戶(hù)號(hào) 'tid' => $tid,//終端號(hào) 'instMid' => 'H5DEFAULT',//業(yè)務(wù)類(lèi)型 'totalAmount' => '1',//支付總金額 'expireTime' => date('Y-m-d H:i:s', strtotime('+1 day', $time)),//過(guò)期時(shí)間 'notifyUrl' => '',//支付通知地址 'returnUrl' => ''//網(wǎng)頁(yè)跳轉(zhuǎn)地址 ]; $timestamp = date('YmdHis', $time); //隨機(jī)數(shù) $str = md5(uniqid(mt_rand(), true)); $uuid = substr($str, 0, 8) . '-'; $uuid .= substr($str, 8, 4) . '-'; $uuid .= substr($str, 12, 4) . '-'; $uuid .= substr($str, 16, 4) . '-'; $uuid .= substr($str, 20, 12); $nonce = $uuid; //簽名 $hash = bin2hex(hash('sha256', json_encode($content), true)); $hashStr = $appId . $timestamp . $nonce . $hash; $signature = base64_encode((hash_hmac('sha256', $hashStr, $appKey, true))); //$appKey銀聯(lián)商戶(hù)H5支付產(chǎn)品的AppKey $data = [ 'timestamp' => $timestamp,//時(shí)間戳 'authorization' => 'OPEN-FORM-PARAM',//認(rèn)證方式 'appId' => $appId,//APPID 'nonce' => $nonce,//隨機(jī)數(shù) 'content' => urlencode(json_encode($content)),//業(yè)務(wù)內(nèi)容 'signature' => urlencode($signature),//簽名 ]; //接口返回信息 //支付寶:http://58.247.0.18:29015/v1/netpay/trade/h5-pay //銀聯(lián)在線(xiàn)無(wú)卡:http://58.247.0.18:29015/v1/netpay/qmf/h5-pay //銀聯(lián):http://58.247.0.18:29015/v1/netpay/uac/order $options = ''; foreach ($data as $key => $value) { $options .= $key . '=' . $value .'&'; } $options = rtrim($options, '&'); //存在轉(zhuǎn)義字符,那么去掉轉(zhuǎn)義 if(get_magic_quotes_gpc()){ $options = stripslashes($options); } $url = 'http://58.247.0.18:29015/v1/netpay/trade/h5-pay?' . $options;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
PHP爬蟲(chóng)之百萬(wàn)級(jí)別知乎用戶(hù)數(shù)據(jù)爬取與分析
這篇文章主要介紹了PHP百萬(wàn)級(jí)別知乎用戶(hù)數(shù)據(jù)爬取與分析的相關(guān)資料,需要的朋友可以參考下2016-01-01php實(shí)現(xiàn)的百度搜索某地天氣的小偷代碼
這篇文章主要介紹了php實(shí)現(xiàn)的百度搜索某地天氣的小偷代碼,有關(guān)php顯示天氣預(yù)報(bào)信息的方法,需要的朋友可以參考下2014-04-04PHP explode()函數(shù)的幾個(gè)應(yīng)用和implode()函數(shù)有什么區(qū)別
這篇文章主要介紹了PHP explode()函數(shù)的幾個(gè)應(yīng)用和implode()函數(shù)有什么區(qū)別,需要的朋友可以參考下2015-11-11Laravel 驗(yàn)證碼認(rèn)證學(xué)習(xí)記錄小結(jié)
這篇文章主要介紹了Laravel 驗(yàn)證碼認(rèn)證學(xué)習(xí)記錄小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Laravel 數(shù)據(jù)庫(kù)加密及數(shù)據(jù)庫(kù)表前綴配置方法
今天小編就為大家分享一篇Laravel 數(shù)據(jù)庫(kù)加密及數(shù)據(jù)庫(kù)表前綴配置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10詳解thinkphp5+swoole實(shí)現(xiàn)異步郵件群發(fā)(SMTP方式)
這篇文章主要介紹了詳解thinkphp5+swoole實(shí)現(xiàn)異步郵件群發(fā)(SMTP方式),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10利用Laravel生成Gravatar頭像地址的優(yōu)雅方法
Gravatar是一圖像跟隨著您到訪(fǎng)過(guò)的網(wǎng)站,當(dāng)您在博客中留言或發(fā)表文章,它將會(huì)出現(xiàn)在您的名稱(chēng)旁。下面這篇文章主要給大家介紹了關(guān)于利用Laravel如何生成 Gravatar 頭像地址的優(yōu)雅方法,需要的朋友可以參考下。2017-12-12ThinkPHP 3.2 版本升級(jí)了哪些內(nèi)容
ThinkPHP 3.2發(fā)布了挺長(zhǎng)時(shí)間了,這里也總結(jié)下這次ThinkPHP 3.2到底發(fā)生了哪些變化,方便程序員們進(jìn)行開(kāi)發(fā)。2015-03-03