背景:uniapp 开发 h5
实现:手机 h5 页面内点击付款实现微信支付
限制:只能在微信浏览器环境下才行
💥借鉴地址
注意:以下三点必须符合要求,否则调起失败
前端部分
因为示例背景是从另外一个小程序,选择商品后会生成一个二维码,扫码进入 h5 ,进行商品的一些其他选择,最后下单支付。
-
根据后端的接口,获取调起支付时所需参数
-
在成功获取所需参数后,调起微信支付,传入参数即可
// ----------------------- 调用微信支付
function onBridgeReady() {
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
{
// 这里传入对应的参数即可
"appId":"wx2421b1c4370ec43b", //公众号ID,由商户传入
"timeStamp":"1395712654", //时间戳,自1970年以来的秒数
"nonceStr":"e61463f8efa94090b1f366cccfbbb444", //随机串
"package":"prepay_id=u802345jgfjsdfgsdg888",
"signType":"MD5", //微信签名方式:
"paySign":"70EA570631E4BB79628FBCA90534C63FF7FADD89" //微信签名
},
function (res) {
if (res.err_msg == 'get_brand_wcpay_request:ok') {
// 使用以上方式判断前端返回,微信团队郑重提示:
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
}
},
);
}
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();
}
// ------------------------
- 在手机中测试支付