結(jié)論:同一用戶,對(duì)同一個(gè)微信開放平臺(tái)下的不同應(yīng)用艘刚,unionid是相同的
用處:用unionID關(guān)聯(lián)同一個(gè)微信開放平臺(tái)帳號(hào)下移動(dòng)應(yīng)用openID、網(wǎng)站應(yīng)用openID和公眾帳號(hào)(包括小程序)openID穴吹,維護(hù)自己的用戶
獲取unionID的4種方式:
1氢惋、調(diào)用接口 wx.getUserInfo,從解密數(shù)據(jù)中獲取 UnionID座舍。注意本接口需要用戶授權(quán)沮翔,請(qǐng)開發(fā)者妥善處理用戶拒絕授權(quán)后的情況。
2曲秉、如果開發(fā)者帳號(hào)下存在同主體的公眾號(hào)采蚀,并且該用戶已經(jīng)關(guān)注了該公眾號(hào)。開發(fā)者可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID承二,無須用戶再次授權(quán)榆鼠。
3、如果開發(fā)者帳號(hào)下存在同主體的公眾號(hào)或移動(dòng)應(yīng)用亥鸠,并且該用戶已經(jīng)授權(quán)登錄過該公眾號(hào)或移動(dòng)應(yīng)用妆够。開發(fā)者也可以直接通過 wx.login + code2Session 獲取到該用戶 UnionID ,無須用戶再次授權(quán)负蚊。
4神妹、小程序端調(diào)用云函數(shù)時(shí),當(dāng)滿足 UnionID 獲取條件時(shí)可在云函數(shù)中通過 cloud.getWXContext 獲取 UnionID
以小程序里面為例家妆,上圖:
服務(wù)器常用的API:
code2Session?伤极,參數(shù)appid腰鬼、secret、js_code塑荒、grant_type='authorization_code'熄赡,請(qǐng)求地址:
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
下發(fā)小程序和公眾號(hào)統(tǒng)一的服務(wù)消息齿税,參數(shù)access_token彼硫、openid、mp_template_msg凌箕,請(qǐng)求地址:
POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=ACCESS_TOKEN
access_token拧篮,參數(shù)grant_type=client_credential、appid牵舱、secret串绩,請(qǐng)求地址:
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET