微信公眾號(hào)H5支付接口調(diào)用方法
本文實(shí)例為大家分享了 微信內(nèi)H5調(diào)用支付接口的具體代碼,供大家參考,具體內(nèi)容如下
官方文檔地址
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>微信公眾號(hào)H5接口調(diào)用</title>
<script src='./js/md5.js'></script>
</head>
<body>
<script>
// 判斷微信版本是否在5.0以上
// window.navigator.userAgent 屬性包含了瀏覽器類(lèi)型,版本,操作系統(tǒng)類(lèi)型,瀏覽器引擎等信息
var ua = window.navigator.userAgent.toLowerCase()
// 通過(guò)正則表達(dá)式匹配 ua 中是否含有 MicroMessenger 字符串
if (ua.match(/MicroMessenger/i) != 'micromessenger') {
return false
}
var appId = 'wx123456789'
// 微信H5接口調(diào)用準(zhǔn)備
// 1,時(shí)間戳
var timeStamp = new Date()
timeStamp = timeStamp.getTime()/1000
console.log('時(shí)間戳', timeStamp)
// 2,生成32位隨機(jī)字符串
function randomString(len) {
len = len || 32
// 默認(rèn)去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1
var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
var charsLen = chars.length;
var pwd = '';
for (var i=0;i<len;i++) {
pwd += chars.charAt(Math.floor(Math.random() * charsLen))
}
return pwd
}
console.log('nonceStr,32位隨機(jī)字符串', randomString())
// 3,package,統(tǒng)一下單接口返回的prepay_id 參數(shù)值
// 4,paySign:微信簽名
function wxSignFunc() {
// 4.1,將參數(shù)改寫(xiě)成 key=value&key2=value2 形式,需要按照參數(shù)名ASCII字典序排序
var stringA = 'appId=' + appId
+'&nonceStr=' + randomString()
+'&package=prepay_id=u802345jgfjsdfgsdg888'
+'&signType=MD5'
+'&timeStamp=' + timeStamp
///// 4.2,拼接API 密鑰
var stringSignTemp = stringA + '&key=192006250b4c09247ec02edce69f6a2d' //注:key為商戶(hù)平臺(tái)設(shè)置的密鑰key
var sign = hex_md5(stringSignTemp).toUpperCase()
return sign
}
console.log(wxSignFunc())
//////////// 微信接口實(shí)例
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId": appId, //公眾號(hào)名稱(chēng),由商戶(hù)傳入
"timeStamp": timeStamp, //時(shí)間戳,自1970年以來(lái)的秒數(shù)
"nonceStr": randomString(), //隨機(jī)串
"package":"prepay_id=u802345jgfjsdfgsdg888", // 統(tǒng)一下單接口返回的prepay_id 參數(shù)值
"signType":"MD5", //微信簽名方式:
"paySign": wxSignFunc() //微信簽名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
// 使用以上方式判斷前端返回,微信團(tuán)隊(duì)鄭重提示:
// res.err_msg將在用戶(hù)支付成功后返回ok,但并不保證它絕對(duì)可靠。
console.log(111)
}
}
)
}
// 調(diào)用微信接口
if (typeof WeixinJSBridge == "undefined"){
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
} else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
</script>
</body>
</html>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
分享網(wǎng)頁(yè)檢測(cè)搖一搖實(shí)例代碼
這篇文章主要介紹了分享網(wǎng)頁(yè)檢測(cè)搖一搖實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-01-01
webpack配置完熱更新會(huì)刷新整個(gè)頁(yè)面
本文主要介紹了webpack配置完熱更新會(huì)刷新整個(gè)頁(yè)面,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
parseInt parseFloat js字符串轉(zhuǎn)換數(shù)字
轉(zhuǎn)換函數(shù)、強(qiáng)制類(lèi)型轉(zhuǎn)換、利用js變量弱類(lèi)型轉(zhuǎn)換。2010-08-08
JS攜帶參數(shù)實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)功能
這篇文章主要介紹了js攜帶參數(shù)實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn),實(shí)現(xiàn)方法也很簡(jiǎn)單,方式一是跳轉(zhuǎn)路徑攜帶參數(shù),第二種方法是通過(guò)sessionStorage傳遞,需要的朋友可以參考下2022-11-11
如何用js將blob為pcm格式轉(zhuǎn)換為MP3格式
要將PCM文件轉(zhuǎn)換為MP3文件,您可以使用Js實(shí)現(xiàn),這篇文章主要給大家介紹了關(guān)于如何用js將blob為pcm格式轉(zhuǎn)換為MP3格式的相關(guān)資料,需要的朋友可以參考下2023-11-11
Javascript將數(shù)值轉(zhuǎn)換為金額格式(分隔千分位和自動(dòng)增加小數(shù)點(diǎn))
這篇文章主要介紹Javascript將數(shù)值轉(zhuǎn)換為金額格式的方法,通俗易懂,需要的朋友可以參考下。2016-06-06

