微信小程序手机号登录
写在前面
本文主要记录业务系统,通过小程序的微信授权手机号,实现业务登录。分为:微信授权登录 + 授权手机号
简要流程
流程:
- 微信授权/静默登录,微信返回一个
code
- 消费登录返回的
code
,就可以获取微信基本信息(静默登录只有:openid,unionid
),然后业务系统授权登录,返回信息 - 手机号授权,因手机号已无法在登录授权信息获取,固需前端通过
button
组件open-type="getPhoneNumber"
获取,返回:code, encryptedData, iv
<!--button组件--> <button class="login-btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"> <text>授权手机号</text> </button>
流程图参考:# 返回信息 { "errMsg": "getPhoneNumber:ok", "encryptedData": "2to78vbONAu6txdUXbEJ5Ir0p3RIilUdkzePRD47I8ka0IPB9F/MkLLXufciAzGzDBR1O57hmBfA7RDC33Va5QY1JQvvFUxKsEKjzSxG1x0rMEWqwAArnKjBiR5GR60mkhxeY5jQYFKZA5y1ZNQ6W+KYhM3rSGRXhzK5ttqXecaT4d+2UvcfnnHtlEEHjlpC7QSUtG5O+3Th+OjYbFoPfQ==", "iv": "zB4mrGz5wr/uAfjaftuFDw==", "code": "2b9d161e71e66a4fb5857bab3aeb5d0db6b37342e63e280c9c881d3c2d8ebf71" }
注意:
- 消费
wx.login
返回的code
会得到openid
,unionid
。其中unionid
为微信全平台唯一id
一般用于业务系统打通微信开放平台其他应用
时使用,而openid
是登录唯一标识(类似业务系统登录的token
),一般返回前端本地存储,做后续业务逻辑时使用,如:消费code获取手机号时可根据unionid
绑定账号。 - 消费返回的
code
获取手机号,通过接口getPhoneNumber
获取。
参考:developers.weixin.qq.com/miniprogr... - 解密返回的
encryptedData + iv
获取手机号(历史版本虽不推荐,但好在免费
)。
注意:解密还需参数session_key
(后端消费登录code
返回的参数session_key
)
注意事项:
自2023年8月26日起,手机号快速验证组件将需要付费使用,当然【公益性组织】除外。
标准单价:每次组件调用成功,收费0.03元;体验额度:每个小程序账号 1000 次。
备注
EasyWeChat 工具包,文档:easywechat.com/6.x/mini-app/utils....
本作品采用《CC 协议》,转载必须注明作者和本文链接