使用场景微信公众号内嵌H5网页调用微信支付。微信浏览器中的网页调用微信支付接口。具体可以参考官方微信支付文档。链接地址功能思路后台集成微信官方相关订单接口,编写预订接口,提供前端调用,返回订单相关参数前台按照下面示例代码,传递订单相关参数后调用微信支付接口。后台集成微信官方订单状态查询接口,编写订单状态查询接口提供前端调用,返回订单支付状态。参数和步骤3中订单状态接口判断订单是否支付成功,完成后续业务逻辑操作前端代码1.设置变量letcan_pay判断是否可以调用微信支付;2.判断当前浏览器是否存在WeixinJSBridge对象,该对象只在微信浏览器有效,通过在回调函数中设置判断变量确认微信支付可用,调用微信相关APIif(typeofWeixinJSBridge==='undefined'){if(document.addEventListener){document.addEventListener('WeixinJSBridgeReady',onBridgeReady,false);}elseif(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,为当前服务商绑定的appidtimeStamp:res.data.timeStamp,//时间戳,自1970年以来的秒数nonceStr:res.data.nonceStr,//随机字符串,不超过32位package:res.data.payInfo,//订单详情扩展字符串,统一下单接口返回prepay_id参数值signType:res.data.signType,//签名方式,默认为MD5,支持HMAC-SHA256和MD5paySign:res.data.sign//signature},//微信支付官方接口函数返回函数(res){if(res.err_msg==='get_brand_wcpay_request:ok'){console.log('这里调用了后台的订单状态查询函数,后台查询成功则微信支付成功,否则失败')}else{console.log('支付异常')}});}我是fx67ll.com,如果您发现本文有错误,欢迎在评论区讨论指正,感谢阅读!如果您喜欢本文,欢迎访问我本文的github仓库地址,并为我点个Star,谢谢~:)转发请注明参考文章地址,万分感谢!!!
