??? openid微信公眾平臺(tái)和小程序都有,不同用戶在同一公眾平臺(tái)或是小程序中openid可以用于區(qū)別不同用戶,遺憾的是openid只是應(yīng)用于當(dāng)前公眾號(hào)或小程序。
?? unionid微信公眾平臺(tái)和小程序都有,同一公司多個(gè)公眾號(hào)或是小程序如果想要做用戶數(shù)據(jù)關(guān)聯(lián),unionid是一個(gè)不錯(cuò)的解決方案,不過要在微信開放平臺(tái)上把你想要共享的公眾號(hào)或是小程序進(jìn)行綁定。
??? 言歸正傳先介紹一下 小程序如何獲取openid?
? ? 上面的兩個(gè)表格已經(jīng)詳情介紹了如何獲取openid,我在這里補(bǔ)充一下注意事項(xiàng),https://api.weixin.qq.com/sns/jscode2session雖然上面寫的是微信官方的接口,但是我們沒法直接使用,官方的解釋是這個(gè)接口最好是后臺(tái)調(diào)用,前臺(tái)無需調(diào)用,也就是說你要用這個(gè)接口讓公司做后臺(tái)開發(fā)人員另寫一個(gè)接口傳遞的參數(shù)是這個(gè)接口要用的請(qǐng)求參數(shù),讓后臺(tái)調(diào)用該網(wǎng)址以及你所傳遞的參數(shù),后臺(tái)人員直接返回接口的返回值就行。
??? 上面介紹了openid如何獲取,下面介紹如何獲取unionid?
???
???
圖3,4是微信里面關(guān)于數(shù)據(jù)簽名的一些介紹,我們所要找的unionid就是要被解密的數(shù)據(jù),其中圖4中畫圈的就是數(shù)據(jù)解析算法,后臺(tái)人員一看就會(huì)里面有demo,支持的后臺(tái)語言是php,node,c++,paython目前僅有這四個(gè)語言的解析包,同介紹openid一樣,讓后臺(tái)人員另寫一個(gè)接口把你要傳遞的參數(shù),通過微信的解析包解析把結(jié)果返回給你里面就會(huì)有你要用的unionid數(shù)據(jù)。后臺(tái)要用到的參數(shù)分別是appid,sessionKey,encryptedData,iv。這四個(gè)參數(shù),其中appid在你在注冊(cè)了開發(fā)者后微信公眾平臺(tái)就有,encryptedData和iv如圖5
最后一個(gè)sessionKey的獲取,如圖二就是在獲取openid的那個(gè)接口的返回值中。
? ? 希望本文對(duì)您有所幫助,如您在實(shí)際測(cè)試中有遇到各種奇怪的問題請(qǐng)?jiān)谙路搅粞裕乙菚?huì)我會(huì)幫您去解決,如果后面有時(shí)間的話我會(huì)寫兩個(gè)公共的接口供大家測(cè)試使用。