本文实例为大家分享了 微信内h5调用支付接口的具体代码,供大家参考,具体内容如下
官方文档
微信公众号h5接口调用
// 判断微信版本是否在5.0以上
// window.navigator.useragent 属性包含了浏览器类型,版本,操作系统类型,浏览器引擎等信息
var ua = window.navigator.useragent.tolowercase()
// 通过正则表达式匹配 ua 中是否含有 micromessenger 字符串
if (ua.match(/micromessenger/i) != 'micromessenger') {
return false
}
var appid = 'wx123456789'
// 微信h5接口调用准备
// 1,时间戳
var timestamp = new date()
timestamp = timestamp.gettime()/1000
console.log('时间戳', timestamp)
// 2,生成32位随机字符串
function randomstring(len) {
len = len || 32
// 默认去掉了容易混淆的字符ooll,9gq,vv,uu,i1
var chars = 'abcdefghjkmnpqrstwxyzabcdefhijkmnprstwxyz2345678';
var charslen = chars.length;
var pwd = '';
for (var i=0;i
pwd += chars.charat(math.floor(math.random() * charslen))
}
return pwd
}
console.log('noncestr,32位随机字符串', randomstring())
// 3,package,统一下单接口返回的prepay_id 参数值
// 4,paysign:微信签名
function wxsignfunc() {
// 4.1,将参数改写成 key=value&key2=value2 形式,需要按照参数名ascii字典序排序
var stringa = 'appid=' + appid
+'&noncestr=' + randomstring()
+'&package=prepay_id=u802345jgfjsdfgsdg888'
+'&signtype=md5'
+'×tamp=' + timestamp
/ 4.2,拼接api 密钥
var stringsigntemp = stringa + '&key=19250b4c09247ec02edce69f6a2d' //注:key为商户平台设置的密钥key
var sign = hex_md5(stringsigntemp).touppercase()
return sign
}
console.log(wxsignfunc())
微信接口实例
function onbridgeready(){
weixinjsbridge.invoke(
'getbrandwcpayrequest', {
"appid": appid, //公众号名称,由商户传入
"timestamp": timestamp, //时间戳,自1970年以来的秒数
"noncestr": randomstring(), //随机串
"package":"prepay_id=u802345jgfjsdfgsdg888", // 统一下单接口返回的prepay_id 参数值
"signtype":"md5", //微信签名方式:
"paysign": wxsignfunc() //微信签名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
// 使用以上方式判断前端返回,微信团队郑重提示:
// res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
console.log(111)
}
}
)
}
// 调用微信接口
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();
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!