小程式獲取微信使用者繫結的手機號

李文楊發表於2018-01-17

小程式API內提供getPhoneNumber藉口來獲取使用者已經繫結到微信的手機號,但需要使用者主動觸發才能發起獲取手機號介面,所以該功能不由 API 來呼叫;

基本流程如下:

使用方法

需要將 <button> 元件 open-type 的值設定為 getPhoneNumber,當使用者點選並同意之後,可以通過 bindgetphonenumber 事件回撥獲取到微信伺服器返回的加密資料, 然後在第三方服務端結合 session_key 以及 app_id 進行解密獲取手機號。

html

<button class="weui-btn" type="primary" style='width:690rpx'  open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">微信繫結手機號登入</button>
Page({
    getPhoneNumber: function (e) {
        console.log(`是否成功呼叫${e.detail.errMsg}`);
        console.log(`加密演算法的初始向量:${e.detail.iv}`);
        console.log(`包括敏感資料在內的完整使用者資訊的加密資料:${e.detail.encryptedData}`);
    } 
});

截圖

如果使用者點選允許getPhoneNumber為ok,且成功返回encryptedData和iv

 

如果使用者點選拒絕getPhoneNumber為fail user deny,返回encryptedData和iv為undefined

 

返回引數說明

encryptedData 解密後為以下 json 結構,詳見加密資料解密演算法

{
    "phoneNumber": "13880006666",  
    "purePhoneNumber": "13580006666", 
    "countryCode": "86",
    "watermark":
    {
        "appid":"APPID",
        "timestamp":TIMESTAMP
    }
}

解密後引數說明

 

相關文章