应用场景
- 微信公众号内嵌H5网页调用微信领取
- 在微信浏览器中的网页唤起微信领取界面
详情能够查阅微信领取官网文档 链接地址
性能思路
- 后盾整合微信官网的相干下单接口,编写预下单接口提供前台调用,并返回订单相干参数
- 前台依照下方示例代码,传递相干订单参数后唤起微信领取界面
- 后盾整合微信官网订单状态查问接口,编写订单状态查问接口提供前台调用,并返回订单领取状态
- 用户领取完后,通过微信返回的参数以及步骤3的订单状态接口来判断订单是否领取胜利,实现后续业务逻辑操作
前端代码
1. 设置判断是否能够调用微信领取的变量
let can_pay;
2. 判断WeixinJSBridge对象是否存在以后浏览器中,该对象只在微信浏览器中无效,并在回调函数中通过设置判断变量来确认微信领取可用,调用微信相干API
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();}onBridgeReady() { can_pay = true; WeixinJSBridge.call('hideOptionMenu'); // 微信API,用于暗藏右上角按钮,与之对应的是显示右上角按钮(showOptionMenu),还有显示暗藏底部导航栏的API(showToolbar/hideToolbar)}
3. 如果判断变量为真则开始通过对象唤起领取界面,并在回调函数中实现其余业务逻辑操作,留神查看正文内容不要间接复制全副代码不做批改
if (can_pay) { WeixinJSBridge.invoke( 'getBrandWCPayRequest', { // res.data对象为后盾返回参数对象 appId: res.data.appId, // 公众号id,为以后服务商号绑定的appid timeStamp: res.data.timeStamp, // 工夫戳,自1970年以来的秒数 nonceStr: res.data.nonceStr, // 随机字符串,不长于32位 package: res.data.payInfo, // 订单详情扩大字符串,对立下单接口返回的prepay_id参数值 signType: res.data.signType, // 签名形式,默认为MD5,反对HMAC-SHA256和MD5 paySign: res.data.sign // 签名 }, // 微信领取官网接口的返回函数 function(res) { if (res.err_msg === 'get_brand_wcpay_request:ok') { console.log('这里调用后盾的订单状态查问函数,如果后盾查问胜利则微信领取胜利,反之失败') } else { console.log('领取异样') } } );}
我是 fx67ll.com,如果您发现本文有什么谬误,欢送在评论区探讨斧正,感谢您的浏览!
如果您喜爱这篇文章,欢送拜访我的 本文github仓库地址,为我点一颗Star,Thanks~ :)
转发请注明参考文章地址,非常感谢!!!