在微信服务号的研发中,我们经常会遇到微信支付功能的实现。通过实际经验,我们总结了前端在H5页面调动微信支付的方法有两种,一种是使用内置对象,另一种是引用微信的js sdk,个人测试可以成功支付,从写作的角度来看,使用内置对象的方法相对简单。这里说的只是前端要做的事情,整个微信支付还有一半以上的工作量需要在后台完成,这里就不说了。
解决方法(内置对象):
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":“wx241b1c470ec43b” //微信官方账号名称,由商家传递到商家
"timeStamp":"1395712654", //时间戳,自1970年以来的秒数
"nonceStr":“e6163f8efa940b1f36ccfbb444” //随机串
"package":"prepay_id=u80245jgfjsdfgsd888”
"signType":"MD5", //微信签名方式:
"paySign":“70EA57061E4B768FBCA90534FFAD89” ///微信签名
},
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();}