记录微信公众号h5支付(前端部分)
- 前一段时间换了一家公司,刚来给了一个项目,h5移动端页面,涉及登录注册、微信绑定、购买等。微信支付以前没作过,不过比较简单,在这里记录一下。
先上官网文档
第一步,先拿到code,拿到code传给后台。
- 这段代码填上就能够用,当用户确认受权之后返回定义的url后,url后就有code参数,而后吧code提出来。
var appid = "公众号id";
var redirect_uri = encodeURIComponent("成功之后返回地址");
window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=" + redirect_uri + "&response_type=code&scope=snsapi_userinfo#wechat_redirect"
复制代码
function parse_url(url) {
var pattern = /(\w+)=(\w+)/ig;
var parames = {};
url.replace(pattern, function (a, b, c) {
parames[b] = c;
});
return parames;
}
var url = window.location.href;
var params = parse_url(url);
复制代码
var appIdVal = appId;
var timeStampVal = timeStamp;
var nonceStrVal = nonceStr;
var packageVal = package;
var signTypeVal = signType;
var paySignVal = paySign;
复制代码
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":"",
"timeStamp":"",
"nonceStr":"",
"package":"",
"signType":"",
"paySign":""
},
function(res){
if(res.err_msg == "get_brand_wcpay_request: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();
}
复制代码
- 楼主遇到的问题第是公众号配置问题,由于公众号不是我本身配置,前端部分写好后一直拉不起支付,后来也是各类百度,最后确认是受权页面回调地址错误。
- 至于后台楼主就不太清楚了,没研究过。在这里记录一下,但愿对其余人有点帮助。