如果开发者拥有多个移动应用、网站应用、和公众帐号(包括小程序),可通过 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)
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐