我们在浏览小程序商城的时候,进入商城首页经常遇到点击授权允许小程序商城获取手机号码,小程序商城是如何做到获取用户在微信绑定的手机号码的呢?
下面安菲云给您分享一下小程序商城是如何自动获取用户的手机号码的实现的思路。
首先,小程序商城需要让用户授权获取基础信息,用户同意授权后收集用户的基础信息和sessionKey,将sessionKey保存到缓存。
然后,通过小程序的button组件来让用户授权获取手机号,button组件的open-type需设置成:“getPhoneNumber”。当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在服务端结合 sessionKey 以及 app_id 进行解密获取手机号。
注意:
在小程序商城的回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
安菲云分享小程序商城获取用户号码的代码示例:
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
Page({
getPhoneNumber (e) {
console.log(e.detail.errMsg)
console.log(e.detail.iv)
console.log(e.detail.encryptedData)
// 向服务端请求进行解密的代码写在这里
...
}})
解密成功获得以下数据:
这样就可以自动获取到用户绑定的手机号码phoneNumber了。
以上是安菲云为大家分享的小程序商城自动获取微信用户手机号码的实例,如果有什么疑问可以在文章底部给留言我们一起探讨。