通过这个API进行微信支付,好的一点是不用在引入那个weixin-jssdk那个文件库了
但在新版本的微信中其实都不建议使用这个方式进行支付了 都推荐wx.chooseWXPay
但是吧微信到现在 也仍然支持这个方法
// 有一个点需要记住 就是那个时间戳那块是字符串哈 如果接口给你返回的是 int类型的话 记得修改下
function onBridgeReady(payData) {
let params = {
appId: payData.AppId, //公众号ID,由商户传入
timeStamp: payData.TimeStamp.toString(), //时间戳,自1970年以来的秒数
nonceStr: payData.NonceStr, //随机串
package: payData.Package,
signType: payData.SignType, //微信签名方式:
paySign: payData.PaySign, //微信签名
};
WeixinJSBridge.invoke(
"getBrandWCPayRequest",
params,
function (res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
Toast("pay success");
// 使用以上方式判断前端返回,微信团队郑重提示:
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
} else {
Toast(res.err_msg);
}
}
);
}
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();
}
最后还有一个小问题就是 如果你的微信支付商家是 微信那边特约商家的话。支付完成后 会把你h5网页关闭 这个需要你参加那个“点金计划”
具体公告详情 请查看
https://pay.weixin.qq.com/index.php/public/cms/content_detail?platformType=1&lang=zh&id=121505
关注我 持续更新前端知识