微信小程序 [獲取登錄用戶信息沿癞,重點openID(詳解)]

? 背景

  • 其實這篇文章幾個月前就寫完了,但是這段時間矛渴,微信小程序官方文檔有了更新椎扬,同事在我自己的實際操作過程中,發(fā)現(xiàn)之前寫的過于繁雜具温,所以現(xiàn)在進行簡化梳理蚕涤,歡迎指摘.

? 步驟梳理

  • 下面是小程序官方提供流程圖:


? 具體實現(xiàn)

一、登錄獲取用戶唯一信息 openID/unionID

  • 此方式铣猩,只需要兩步操作即可揖铜,但是需要小程序端和項目服務器的代碼配合進行操作,建議參考下官方說明 wx.login(OBJECT)
步驟梳理:
> (1).獲取臨時登錄憑證—— code
> (2).將上述獲得的 code 通過request 請求發(fā)送給代碼服務器
> (3).請求接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
    > ;# 成功則會返回我們所需要的 "openID/unionID"
  • 具體實現(xiàn):

①. 服務端代碼處理

  • 后面將會進行源代碼的上傳达皿,具體代碼在 "WxController.class.php" 中天吓,可作參考

②.小程序端 js編碼

  • 我在此處設置了一個 "button" 按鈕,通過點擊而調(diào)用其中的方法邏輯峦椰,其實在實際開發(fā)中龄寞,自行將其中的代碼提取調(diào)用就可;
/**
* 獲取用戶唯一憑證
*/
bingGetOpenID: function() {
    wx.login({
      success: function(data) {
        console.log('獲取登錄 Code:' + data.code)
        var postData = {
          code: data.code
        };
        wx.request({
          url: 'http://fetowNew.com/wxApi/wx/getOpenID',//注意改成自己的服務器請求地址哦汤功!
          data: postData,
          method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
          header: {
            'content-type': 'application/x-www-form-urlencoded;charset=utf-8',
          },
          success: function(res) {
            //回調(diào)處理
            console.log('getOpenID-OK!');
            console.log(res.data);
          },
          fail: function(error) {
            console.log(error);
          }
        })
      },
      fail: function() {
        console('登錄獲取Code失斘镆亍!');
      }
    })
  },

③. 運行效果如下:

  • 注意觀察我的數(shù)據(jù)獲取情況,你會發(fā)現(xiàn)其中包含了 "unionID",這是因為我在微信開放平臺進行了綁定操作拂封,如果你沒有這樣的操作,那么就不會有這個數(shù)據(jù)

提示:
UnionID 只在滿足一定條件的情況下返回鹦蠕。具體參看 UnionID機制說明
注意配置信息的填寫冒签,需要正確填寫自己的數(shù)據(jù)哦,應該歧義不大

二钟病、新方法獲取用戶信息

  • 如果你接觸小程序時間較早萧恕,應該會知道,微信小程序官方之前是使用接口 wx.getUserInfo() 方法進行操作的肠阱,但是因為近期版本更新,現(xiàn)在有了新的方法票唆,推薦閱讀文檔了解, wx.getUserInfo(OBJECT) 接口獲取用戶信息

①. 第一步屹徘,頁面使用button引導

官方文檔已做注明:請使用 <button open-type="getUserInfo"></button> 引導用戶主動進行授權(quán)操作

  • 最簡單的使用方式就是走趋,使用頁面中的 Button 進行引導操作即可:
<button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bingGetUserInfo">獲取用戶信息</button>

②. 第二步,js文件進行綁定事件處理

  • 在對應的 js文件中噪伊,創(chuàng)建相應的方法 bingGetUserInfo()
  /**
   * 獲取用戶信息
   */
  bingGetUserInfo:function(e){
  console.log(e.detail);
  },
  • 上述方法執(zhí)行后的打印數(shù)據(jù)截圖如下:


③. 第三步簿煌,后續(xù)處理

  • 根據(jù)上一步得到的 e.detail 打印出的對象數(shù)據(jù),直接進行提取所需要的數(shù)據(jù)(比如微信昵稱和頭像鏈接鉴吹、性別等)姨伟;
  • 然后通過 wx.request() 存儲到自己的服務器中即可;

注意(后面步驟豆励,可繼續(xù)也可停止夺荒,自行決定!):

> 其實良蒸,獲取當前登錄用戶的 "openID/unionID" 信息在前面"(一)"已經(jīng)可以簡單的獲得了;
> 但是如果想繼續(xù)當前的步驟的話:
  • 我們完全可以直接通過獲得的 "encryptedData"技扼,然后對其進行 算法對稱解密操作,就可以獲取到用戶的 openID/unionID 這些敏感數(shù)據(jù)嫩痰,并且文檔中也提供了不同語言的示例代碼
步驟梳理:
1).獲取臨時登錄憑證(code)
2).根據(jù)上一步中微信端傳來的參數(shù) "code"淮摔,在本地服務器中請求微信的接口地址,從而得到"session_key"
    >接口地址為:"https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code"
3).服務端獲取數(shù)據(jù)簽名加密信息

④. 進一步的實現(xiàn)處理

  • 小程序 js代碼的補充擴展始赎,其實還是前面的 bingGetUserInfo()方法:

提示

以我的 PHP 代碼為例和橙,調(diào)用 WXBizDataCryptController 類的 wxDecrypt() 方法,傳入前面所獲得的所有參數(shù)即可

  • 附一張數(shù)據(jù)反饋截圖:


提示:
> 此時只要進行數(shù)據(jù)轉(zhuǎn)化即可得到我們所需要的 "openid/unionid" 重要信息;
> 比如造垛,我需要用到此信息去數(shù)據(jù)庫比對該用戶的業(yè)務信息等;
> 當然魔招,我建議的是在服務端獲取到數(shù)據(jù)后就與自己的數(shù)據(jù)庫進行匹配處理即可

? 附錄

? 推薦參考:

? 源碼下載

CSDN-源碼鏈接 歡迎指摘

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市五辽,隨后出現(xiàn)的幾起案子办斑,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乡翅,死亡現(xiàn)場離奇詭異鳞疲,居然都是意外死亡,警方通過查閱死者的電腦和手機蠕蚜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門尚洽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人靶累,你說我怎么就攤上這事腺毫。” “怎么了挣柬?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵潮酒,是天一觀的道長。 經(jīng)常有香客問我邪蛔,道長急黎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任侧到,我火速辦了婚禮叁熔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘床牧。我一直安慰自己荣回,他們只是感情好,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布戈咳。 她就那樣靜靜地躺著心软,像睡著了一般。 火紅的嫁衣襯著肌膚如雪著蛙。 梳的紋絲不亂的頭發(fā)上删铃,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天,我揣著相機與錄音踏堡,去河邊找鬼猎唁。 笑死,一個胖子當著我的面吹牛顷蟆,可吹牛的內(nèi)容都是我干的诫隅。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼帐偎,長吁一口氣:“原來是場噩夢啊……” “哼逐纬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起削樊,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤豁生,失蹤者是張志新(化名)和其女友劉穎兔毒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甸箱,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡育叁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了芍殖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豪嗽。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖围小,靈堂內(nèi)的尸體忽然破棺而出昵骤,到底是詐尸還是另有隱情树碱,我是刑警寧澤肯适,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站成榜,受9級特大地震影響框舔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜赎婚,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一刘绣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挣输,春花似錦纬凤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至完丽,卻和暖如春恋技,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背逻族。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工蜻底, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人聘鳞。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓薄辅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親抠璃。 傳聞我的和親對象是個殘疾皇子长搀,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 背景小程序一個比較重要的能力就是獲取用戶信息,也就是使用 wx.getUserInfo接口鸡典。我們發(fā)現(xiàn)幾乎所有的小程...
    未央大佬閱讀 15,449評論 0 23
  • 轉(zhuǎn)載鏈接 注:本文轉(zhuǎn)載知乎上的回答 作者:初雪 鏈接:https://www.zhihu.com/question...
    pengshuangta閱讀 28,509評論 9 295
  • 給提問的開發(fā)者的建議:提問之前先查詢 文檔源请、通過社區(qū)右上角搜索搜索已經(jīng)存在的問題。 寫一個簡明扼要的標題,并且...
    極樂叔閱讀 13,398評論 0 3
  • 書讀百遍谁尸,其義自見舅踪。 不想改變的人,總會有無數(shù)理由去解釋改變的壞處良蛮。 這幾天天氣下雨抽碌,天陰陰的,自己變得壓抑了許多...
    A把時間當做朋友閱讀 147評論 1 4
  • 心理健康有利成長 心理健康决瞳,能使我們充分的感受生活的美好货徙。生活中有許多美好的事物,大至祖國的欣欣向榮和社會的...
    聽lqy閱讀 424評論 0 1