关于微信小程序获取用户openid的问题

本文详细介绍了在微信小程序中,个人开发者如何通过特定代码获取用户的OpenId,包括使用wx.login()和wx.getUserInfo()方法的步骤,以及如何利用获取到的code调用微信API进行OpenId的解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.个人开发者是获取不到OpenId:之前测试一直拿不到,读者可以试一下。

2.获取的代码和输出:

//app.js

App({

globalData: {

appid: 'wx62a1hh8cfc28fdb',//appid需自己提供,此处的appid我随机编写

secret: '8990bf089dbsese3c951a1',//secret需自己提供,此处的secret我随机编写

},

onLaunch: function () {

var that = this

var user = wx.getStorageSync('user') || {};

var userInfo = wx.getStorageSync('userInfo') || {};

if ((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600)) && (!userInfo.nickName)) {

wx.login({

success: function (res) {

if (res.code) {

wx.getUserInfo({

success: function (res) {

var objz = {};

objz.avatarUrl = res.userInfo.avatarUrl;

objz.nickName = res.userInfo.nickName;

console.log(objz);

wx.setStorageSync('userInfo', objz);//存储userInfo

}});

var d = that.globalData;//这里存储了appid、secret、token串

var l = 'https://api.weixin.qq.com/sns/jscode2session?appid=' + d.appid + '&secret=' + d.secret + '&js_code=' + res.code + '&grant_type=authorization_code';

wx.request({

url: l,

data: {},

method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

// header: {}, // 设置请求的 header

success: function (res) {

var obj = {};

obj.openid = res.data.openid;

obj.expires_in = Date.now() + res.data.expires_in;

console.log(obj);

wx.setStorageSync('user', obj);//存储openid

}

});

} else {

console.log('获取用户登录态失败!' + res.errMsg)

}

}

});

}

},

})

结果输出(设置不校验域名):

VM682:1 工具未校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书。

app.js? [sm]:36

  1. {openid: "oBU4-5beiAsSLu40efAxL5d8iJe0", expires_in: NaN}
    1. expires_in:NaN
    2. openid:"o*********0efAxL5d8iJe0" 
    3. __proto__:Object

转载:https://blog.youkuaiyun.com/qq_27626333/article/details/54614037

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值