微信公众号获取code
第一次接触微信公众号开发时,看了微信开发文档,首先需要获取微信code和微信小程序一样,但是获取方式不一样,需要授权。我用uniapp开发的 所以在mian.js中获取code的方式。判断是否有code的,有就去请求后台接口Vue.prototype.getCode = function () { // 非静默授权,第一次有弹框this.code = '';var local = encodeUR
·
第一次接触微信公众号开发时,看了微信开发文档,首先需要获取微信code和微信小程序一样,但是获取方式不一样,需要授权。
我用uniapp开发的 所以在mian.js中获取code的方式。
判断是否有code的,有就去请求后台接口
Vue.prototype.getCode = function () { // 非静默授权,第一次有弹框
this.code = '';
local = encodeURIComponent(window.location.href); // 获取页面url
var appid = '公众号的appid';
this.code = this.getUrlCode().code; // 截取code
if (this.code == null || this.code === '' || this.code == undefined) { // 如果没有code,则去请求
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${local}&response_type=code&connect_redirect=1&scope=snsapi_userinfo&state=STATE#wechat_redirect`
}else {
// 存在code 获取openid
var h5WinXinDefaultUrl = getApp().globalData.url + "/login/getMpUserInfo"
uni.request({
url:h5WinXinDefaultUrl,//请求后台路径
data:{
code:this.code
},
header:{
'content-type': 'application/json'
},
method:'POST',
success: (res) => {
if(res.data.status == 1){
//openid 用户名 头像
uni.setStorageSync("wxCode",'wx');
uni.setStorageSync("open_id",res.data.data.user.open_id);
uni.setStorageSync("nickname",res.data.data.user.nickname);
uni.setStorageSync("avatar",res.data.data.user.avatar);
uni.setStorageSync("uid",res.data.data.user.uid);
}
}
})
}
},
获取code
Vue.prototype.getUrlCode = function() { // 截取url中的code方法
var url = location.href
this.winUrl = url
var theRequest = new Object()
if (url.indexOf("?") != -1) {
var str = url.substr(1)
var strs = str.split("?")
if(strs.length == 2) {
var strs = strs[1].split("&")
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1])
}
}else {
return theRequest
}
}
return theRequest
},
更多推荐
已为社区贡献2条内容
所有评论(0)