午夜91福利视频,午夜成人在线观看,午夜在线视频免费观看,午夜福利短视频,精品午夜成人免费视频APP

小程序模板網

使用銀聯商務實現微信小程序支付

發布時間:2020-05-14 10:23 所屬欄目:小程序開發教程

最近公(gong)司的(de)小程(cheng)(cheng)序(xu)需要使(shi)用(yong)到支(zhi)付(fu)功(gong)能(neng),我們使(shi)用(yong)的(de)是(shi)銀聯商務的(de)支(zhi)付(fu),那(nei)么(me)如(ru)何(he)在微信(xin)小程(cheng)(cheng)序(xu)中(zhong)對接(jie)銀聯商務的(de)微信(xin)小程(cheng)(cheng)序(xu)支(zhi)付(fu)呢?這里我記錄下(xia)我在微信(xin)小程(cheng)(cheng)序(xu)中(zhong)實現銀聯商務的(de)微信(xin)小程(cheng)(cheng)序(xu)支(zhi)付(fu)流程(cheng)(cheng)

一:接(jie)口(kou)部分:

這里注意銀聯商(shang)務的小程序支付(fu)目前不支持測試號支付(fu),只有使用正式的參(can)數(shu)實現小程序支付(fu)

1:銀聯商務的小程序支(zhi)付接口地址:

//qr.chinaums.com/netpay-route-server/api/

2:主要參數說明:

(1):msgSrc

消息來(lai)源:如:WWW.TEST.COM

(2):msgType

消息類型:微信小程序支付(fu)參數固定為:wx.unifiedOrder

(3):mid

商戶號

(4):tid

終端號

(5):requestTimestamp

報文請求時(shi)間,格(ge)式(shi)yyyy-MM-dd HH:mm:ss

(6):merOrderId

訂(ding)單號(hao),這里注意傳遞給銀(yin)聯商務的訂(ding)單號(hao)的前綴必須(xu)是來源(yuan)編(bian)號(hao),例如測試號(hao)的來源(yuan)編(bian)號(hao)為3194,那么這里的訂(ding)單號(hao)就必須(xu)是以(yi)3194開(kai)頭

(7):instMid

機構商戶號,這里固定為:MINIDEFAULT

(8):totalAmount

訂單金額,這里(li)的單位為(wei)(wei)分,例(li)如一元的話,此參數就為(wei)(wei)100

(9):tradeType

交易類型:這里(li)固(gu)定為(wei)MINI

(10):signType

簽名算法:這里(li)的(de)參(can)數有三種分別為MD5,SHA1,RSA,這里(li)我(wo)使(shi)用(yong)的(de)是(shi)MD5

(11):subOpenId

支付用戶openid

(12):notifyUrl

支(zhi)付(fu)結果通知(zhi)地址(zhi),及異步回調地址(zhi),這里注意:支(zhi)付(fu)通知(zhi)地址(zhi)必(bi)須是偽(wei)靜態地址(zhi),例如: XXXXX/back/index,不能是XXXX/index.php?r=back/index

(13):sign

簽名(ming)(ming),將上面的參(can)數按(an)照a-z的順序(xu)進行排序(xu),排序(xu)完成之(zhi)后用&字符(fu)(fu)連(lian)接起來,連(lian)接起來之(zhi)后如果存在轉(zhuan)義(yi)字符(fu)(fu),那么(me)去(qu)掉轉(zhuan)義(yi)字符(fu)(fu),然后進行md5加密獲取(qu)到簽名(ming)(ming)

接口端(duan)微信小(xiao)程序下單的(de)簡單實例如下:

$url = '//qr.chinaums.com/netpay-route-server/api/';  
$requestTimestamp = date('Y-m-d H:i:s',time());  
$data = [  
    'msgSrc' => 'XXX',//消息來源  
    'msgType' => 'wx.unifiedOrder',//消息類型  
    'requestTimestamp' => $requestTimestamp,  
    'mid' => 'XXX',  
    'tid' => 'XXX',  
    'merOrderId' => 'XXX',  
    'instMid' => 'MINIDEFAULT',  
    'totalAmount' => 1,  
    'tradeType' => 'MINI',  
    'signType' => 'MD5',  
    'subOpenId' => 'XXX',  
    'notifyUrl' => 'XXX',//回調地址  
];  
//獲取sign參數  
ksort($data);  
reset($data);  
$options = '';  
foreach ($data as $key => $value) {  
    $options .= $key . '=' . $value .'&';  
}  
$options = rtrim($options, '&');  
//存在轉義字符,那么去掉轉義  
if(get_magic_quotes_gpc()){  
    $options = stripslashes($options);  
}  
$sign = md5($options . $params['mdKey']);  
$data['sign'] = $sign;  
//調用銀聯商務的微信小程序下單接口  
$client = new Client();  
$response = $client->createRequest()  
    ->setMethod('POST') // 請求方式  
    ->setUrl($url)      // 請求地址  
    ->setData($data)    //數據傳數組  
    ->setHeaders(['Content-Type'=>'application/json']) //header  
    ->setFormat(Client::FORMAT_JSON) //提交的數據的格式  
    ->send();  
if (!$response->isOk) {  
    return [  
        'type' => 'error',  
        'message' => '支付調用失敗'  
    ];  
}  
if ($response->data\['errCode'] == 'SUCCESS') {  
    return [  
        'type' => 'success',  
        'message' => '支付調用成功',  
        'data' => $response->data\['miniPayRequest'\],//小程序支付用的請求報文,帶有簽名信息  
    ];  
} else {  
    return [  
        'type' => 'error',  
        'message' => '支付調用失敗' . $response->data['errMsg']  
    ];  
}

二:小程序端:

銀聯商務(wu)接口返回的(de)(de)miniPayRequest參數包含了(le)微(wei)信小程序調(diao)用支付(fu)的(de)(de)所(suo)有參數,所(suo)以我們在微(wei)信小程序端只(zhi)需要(yao)見接口中的(de)(de)數據填充(chong)進(jin)去就(jiu)可以實現微(wei)信小程序支付(fu)了(le)

//這里的payData就是接口返回的data參數  
wx.requestPayment({  
  timeStamp: payData.timeStamp,  
  nonceStr: payData.nonceStr,  
  package: payData.package,  
  signType: payData.signType,  
  paySign: payData.paySign,  
  success: (res) => {  
    //支付成功處理  
  },  
  fail: (res) => {  
    //支付失敗處理  
  }  
})

這里(li)我們(men)就(jiu)實現了在(zai)微(wei)信小程序中對(dui)接銀聯商務支付了,微(wei)信小程序的支付對(dui)調是post傳值,具體信息如下:

可以根據你項(xiang)目的具體需求進行處理即可,這(zhe)里注意在回調的結尾需要輸(shu)入(ru)SUCCESS或FAILED,不然的話(hua)可以會(hui)出現(xian)對此通知的現(xian)象


易(yi)優小程序(企業版)+靈活api+前(qian)后代碼開源 碼(ma)云倉庫:
本文地址://www.jinyoudianli.com/wxmini/doc/course/25175.html 復制鏈接 如需定制請聯系易優客服咨詢:

工作日 8:30-12:00 14:30-18:00
周(zhou)六及部分(fen)節假日(ri)提供值班服務

易小優
轉人工 ×