小程序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 } }
解密后參數說明

