如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 UnionID 来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号(包括小程序),用户的 UnionID 是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
1、调用wx.login获取当前登录用户的code码
2、将code码传给后端,通过code2Session方式获取用户unionid
getUserOpenId: async function({ commit }) {
return await new Promise((resolve, reject) => {
// 调用wx.login(此处由于我引用了uniapp框架所以为uni.login)
uni.login({
success: data => {
// 调用后端接口,传入code码
getOpenId({ code: data.code }).then(res => {
commit('setOpenid', res.data.openid)
// 将unionid存入缓存,全局使用
uni.setStorageSync('unionid', res.data.unionid)
resolve(res.data.openid)
}).catch(err => {
reject(err)
})
},
fail: err => {
console.log('uni.login 接口调用失败,将无法正常使用开放接口等服务',err)
reject(err)
}
})
})
此处为调用后端接口的代码,具体后端要怎么写,我不清楚哦~直接问一下自己公司的后端大佬吧
// 获取openid
export function getOpenId(params) {
return http.get('/u/v3/users/code2Session', params)
}