微信小程序2022年由于某些原因不能直接获取用户openid了,需要先获取凭证在换openid
以下是使用hbuilder开发小程序使用云开发获取用户openid的方法
一下云函数代码
'use strict';
exports.main = async (event, context) => {
//event为客户端上传的参数
let js_code = event.code
const appid = '你的appid' //appid
const secret = '你的secret'
const loginUrl = 'https://api.weixin.qq.com/sns/jscode2session'
console.log(js_code)
let res = await uniCloud.httpclient.request(loginUrl, {
data: {
appid: appid,
secret: secret,
js_code: js_code,
grant_type: 'authorization_code'
},
dataType: 'json'
})
let openid=res.data.openid
//返回数据给客户端
return openid
};
小程序端代码
uni.login({
provider: "weixin",
success: (res) => {
console.log("code: ", res.code)
uniCloud.callFunction({
name: "openid",
data: {
"code": res.code
}
}).then(res => {
console.log("your openid:", res.result);
that.setData({
openid:res.result
})
})
.catch(err => {
console.log(err)
})
}
})