在调用微信api支付的时候,需要有按钮点击触发才能支付,如果没有用户触发点击事件,支付就会失败;
js直接调起的支付:
用户点击按钮触发的支付:
如果是用微信h5调起的支付,不需要点击也能触发支付也能成功
function WeixinPay(data, callback) {
if (typeof WeixinJSBridge == "undefined") {//微信浏览器内置对象。参考微信官方文档
if(document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady(data, callback), false);
}
else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady(data, callback));
document.attachEvent('onWeixinJSBridgeReady',onBridgeReady(data, callback));
}
}
else{
onBridgeReady(data, callback);
}
}
function onBridgeReady(data, callback) {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',{
"appId": data.appId, //公众号名称,由商户传入
"timeStamp": data.timeStamp, //时间戳,自1970年以来的秒数
"nonceStr": data.nonceStr, //随机串
"package": data.package,
"signType": data.signType, //微信签名方式:
"paySign": data.paySign //微信签名
},(res) => {
// 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
if(res.err_msg == "get_brand_wcpay_request:ok"){
callback('success')
}else{
callback('error')
}
}
);
}
您好,缺少appid。说明在传入参数的时候appid没有传或者上传错误,按照这里的提示,在这一步注入appid,仔细检查下
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#4