微信授权获取code
2019-11-30

摘要:最近在做h5支付,然后发现一个问题,微信自带浏览器不支持h5支付,然后后台又做了一个微信支付的接口,然后要传code参数,代码写好总结后,就发到这里记录一下;

 

因为有两个支付接口,所以首先判断打开页面的是微信浏览器还是其他浏览器,代码如下:

if(ua.match(/MicroMessenger/i) == "micromessenger") { //微信浏览器 }else{ //其他浏览器 }

 

然后,请求接口实例如下:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE&connect_redirect=1#wechat_redirect

参数的意思为:

 

接着我们要准备的就是,把我们支付的这个APPID与REDIRECT_URI填写好,appid问产品要,然后redirect_url自己找到自己需要跳转的地址链接,然后需要获取code的页面通过上一个页面跳转链接传值获取code即可;

例如:

window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9cxxxxxxxxxx42c&redirect_uri=https://xxxxx.com/wap/payOrder.html&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";

 

随后,我们需要获取code的该页面地址链接就会变成:

 

https://xxxxx.com/wap/payOrder.html/?code=abc677adaduiadi7838&state=STATE

 

 

最后,我们通过获取链接取到code,传值给后台:

 

function getQueryString(name){ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } var code = getQueryString("code");

 

 

 

 

 

这样,我们就获取到code,希望对大家有用。

 

, 1, 0, 9);