微信服务号开发-商城微信支付
function onBridgeReady() { WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId": appId, //公众号名称,由商户传入 "timeStamp": timeStamp, //时间戳,自1970年以来的秒数 "nonceStr": nonceStr, //随机串 "package": package, "signType": signType, //微信签名方式: "paySign": sign //微信签名 }, function (res) { if (res.err_msg == "get_brand_wcpay_request:ok") { window.location.href = "order.html" } else { alert("支付失败") } // 使用以上方式判断前端返回,微信团队郑重提示: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(); }
前端接口也许几句话就解决了。
但是后端计算的快吐血了。
所以这边还是推荐微信的官方文档
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7
"appId": appId, //公众号名称,由商户传入
"timeStamp": timeStamp, //时间戳,自1970年以来的秒数
"nonceStr": nonceStr, //随机串
"package": package,
"signType": signType, //微信签名方式:
"paySign": sign //微信签名
这几个参数竟然全部都需要后端生成。我也是醉了
这边还在IOS上遇到了一个click失效的问题
解决方法
1、将 click 事件直接绑定到目标元素(即 .target)上;
2、将目标元素换成 a 或者button 等可点击的元素;
3、将 click 事件委托到非 document 或 body 的父级元素上;
4、给目标元素加一条样式规则 cursor: pointer。