微信小程序获取用户手机号的流程及注意事项(uni-app)

本文介绍了微信小程序通过uni-app获取用户手机号的步骤:首先使用login获取code,然后用code兑换sessionKey,并结合授权的iv和encryptedData解密用户信息。在调用wx.login时要注意可能的登录态刷新,确保每次都使用最新的code以防止sessionKey过期。另外,与后端交互时需留意'+'号被转换为空格的问题,可采取编码替换等措施解决。
摘要由CSDN通过智能技术生成

最近公司小程序有个获取用户手机号功能,废话不多说直接上代码。

1.login方法获取code,用code调用后端接口获取sessionKey(即code2sessionAPI)

function getSessionKey() {
	return new Promise((resolve, reject) => {
		uni.login({
			provider: 'weixin',
			success: res => {
				ajax({
					url: `后端获取session_key接口`,
					loading: false,
					data: {
						js_code: res.code
					},
				}).then(resp => {
					if(resp.respCode=='T'&&resp.result.session_key){
						resolve(resp.result.session_key);
					}else{
						console.log('接口error:',resp)
						reject(resp.errorData)
					}
				})
			},fail:res=>{
				console.log('login方法error:',res)
				reject(res)
			}
		});

	})
}

2.拿到sessionKey,结合用户授权成功后得到的iv,encryptedData发送给后端做解密

getPhoneNumber(e) {
				getSessionKey().then(sessionKey => {
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值