小程序
小游戏
企业微信
微信支付
扫描小程序码分享
一些微信获取绑定手机号后后台解密能成功,但一些微信获取授权后,后台解密报错
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
解密失败 通常是 用于加密手机号的 sessionkey 和 解密的 sessionkey 不一致导致的。需要确保 在 获取手机号码之前 sessionkey 已经 ready. 之后没有再调用 wx.login 更新 sessionkey
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
目前的思路是: 打开小程序时获取客户的openid,这时在后台会保存sessionkey。后续获取绑定手机时,前端上送encryptedData和iv,后台拿保存的sessionkey解密,有些微信次次都能成功,但发现有的则不能成功。 这样的思路有问题吗?
报错截图?猜不出来。。
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取用户手机号</button>
<view wx:if="{{phoneNumber}}">当前微信绑定手机号为:{{phoneNumber}}</view>
getPhoneNumber(e) {
wx.showLoading({
title: '加载中'
})
wx.cloud.callFunction({
name: 'getPhoneNumber',
data: {
phoneNumber: wx.cloud.CloudID(e.detail.cloudID)
},
}).then(resData => {
wx.hideLoading()
this.setData({
phoneNumber: resData.result.phoneData.phoneNumber
}
云函数里:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event) => {
return {
phoneData: event.phoneNumber.data
建议检查下代码
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
解密失败 通常是 用于加密手机号的 sessionkey 和 解密的 sessionkey 不一致导致的。需要确保 在 获取手机号码之前 sessionkey 已经 ready. 之后没有再调用 wx.login 更新 sessionkey
目前的思路是: 打开小程序时获取客户的openid,这时在后台会保存sessionkey。后续获取绑定手机时,前端上送encryptedData和iv,后台拿保存的sessionkey解密,有些微信次次都能成功,但发现有的则不能成功。 这样的思路有问题吗?
我们现在的方案是用云开发,几行代码就解密成功了。。不需要iv 这些。。
报错截图?猜不出来。。
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取用户手机号</button>
<view wx:if="{{phoneNumber}}">当前微信绑定手机号为:{{phoneNumber}}</view>
getPhoneNumber(e) {
wx.showLoading({
title: '加载中'
})
wx.cloud.callFunction({
name: 'getPhoneNumber',
data: {
phoneNumber: wx.cloud.CloudID(e.detail.cloudID)
},
}).then(resData => {
wx.hideLoading()
this.setData({
phoneNumber: resData.result.phoneData.phoneNumber
})
})
}
云函数里:
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event) => {
return {
phoneData: event.phoneNumber.data
}
}
建议检查下代码