解决微信小程序授权获取手机号后出现-41003: aes 加密数据解密失败问题

2023-03-07   阅读:3316   分类:后端    标签: 微信小程序

很多开发者在微信小程序授权获取用户手机号,经常出现授权失败获取不到手机号的问题,正常小程序调用getuserinfo接口拿到encryptedData,iv,然后给服务端 4.服务端拿到客户端的encryptedData,vi还有之前的sessionKey去解密得到 unionId等用户信息 注意:客户端上传的encryptedData需要encodeURIComponent方法进行URL编码,对应服务端需要URL解码 小程序,解决方法如下:

1、前端对encodeURIComponent(encryptedData)对encryptedData进行URL编码

async getPhoneNumber(e){
 var __that = this
 var iv = e.$wx.detail.iv;
 var encryptedData = e.$wx.detail.encryptedData;
 wx.login({
  success:async function(res){

   const getUserPhones = await getUserPhone2({
      code: res.code,
      iv: iv,
      encryptedData: encodeURIComponent(encryptedData),
      sharePhone: __that.sharePhone,
    })
    if(getUserPhones.data.code==200){
     wepy.wx.setStorage({
      key:"phone",
      data:getUserPhones.data.data
     })
     __that.phone = getUserPhones.data.data
    }else{
     wepy.wx.showModal({
      title: '提示',
      content: '网络错误,授权失败,请重试'
     })
    }
  }
 })
}

2、后端使用urldecode()函数对encryptedData解码

$encryptedData=urldecode($_GET["encryptedData"]);
【腾讯云】2核2G云服务器新老同享 99元/年,续费同价,云服务器3年机/5年机限时抢购,低至 2.5折

‘简忆博客’微信公众号 扫码关注‘简忆博客’微信公众号,获取最新文章动态
转载:请说明文章出处“来源简忆博客”。http://www.tpxhm.com/adetail/965.html

×
觉得文章有用就打赏一下文章作者
微信扫一扫打赏 微信扫一扫打赏
支付宝扫一扫打赏 支付宝扫一扫打赏

文章评论(0)

登录
简忆博客壁纸一
简忆博客壁纸二
简忆博客壁纸三
简忆博客壁纸四
简忆博客壁纸五
简忆博客壁纸六
简忆博客壁纸七
简忆博客壁纸八
头像

简忆博客
勤于学习,乐于分享

置顶推荐

打赏本站

如果你觉得本站很棒,可以通过扫码支付打赏哦!
微信扫码:你说多少就多少~
微信扫码
支付宝扫码:你说多少就多少~
支付宝扫码
×