遇到同样问题,wx.authPrivateMessage 返回的数据发到后端解密失败 难道官方就不关注这里提的问题吗?
小程序私密消息为何无法解密出 activity_id ?问题接口:wx.authPrivateMessage(Object object) 微信版本:安卓 8.0.16,基础库:2.21.0 问题:私密消息从后台生成 activity_id,使用接口 wx.updateShareMenu 定义私密消息,转发后另一个用户打开,能得到正常的加密信息,但无法解密获取之前生成的 activity_id。 相关代码: // 分享者 wx.updateShareMenu({ withShareTicket: true, isPrivateMessage: true, activityId: '****', // 此处为后台获取 id,经测试有效 }) // 被分享者 // 省略 wx.login 过程 wx.authPrivateMessage({ shareTicket: '****', // wx.getLaunchOptionsSync() 获取,测试有效 success (res) { // 后台解密过程 $api.post('https://url.test',{ iv: res.iv, encryptedData: res.encryptedData }) .then(result => { console.log(result) // 结果解密失败 -41003 }) } }) 问题排查: 后台解密代码逻辑正常。使用用户信息接口(wx.getUserProfile)测试可获取正常结果,因此解码逻辑正常。session_key 正常。使用 wx.checkSession 和上一条中获取用户信息并解密均正常工作。使用接口 wx.getShareInfo(Object object) 可以解密得到结果 msgTicket: ****,但并没有 activity_id,无法获取预期结果,代码如下:// 测试 getShareInfo wx.getShareInfo({ shareTicket: '****', // wx.getLaunchOptionsSync() 获取,测试有效 success (res) { // 后台解密过程 $api.post('https://url.test',{ iv: res.iv, encryptedData: res.encryptedData }) .then(result => { console.log(result) // 获取正常结果:{msgTicket: ********} }) } }) 已反复阅读文档,遍寻社区无果,特来请教官方指导,或有哪位朋友做过此类需求的烦请指教。
2022-02-06