微信小程序分享群获取群id时后端接口返回“微信AES解密失败”,后来定位到原因是服务端用于解密的session_key失效。用户获取到openID存在缓存后,就不会每次login获取登录态了,这样会导致登录态失效,即后端维护的session_key失效。分享群后获取的加密信息是老的session_key+openId构成,服务端解密时的session_key要和分享前一致。

在需要获取openGid的页面:

app.getOpenId(this.route, this.data.pageOptions).then((res) => {
wx.login({
success(res) {
// 刷新服务端session_key
api.ajax('GET', api.config_url.refreshWxUserSessionKey, {
appId: api.appId,
code: res.code,
}).then(res => {
const { status, message } = res.data;
if (status) {
console.log('登录态刷新成功');
}
}, res => { });
}
})

// 其他业务逻辑
...

app.js
//获取openGid
getOpenGid(shareTicket, status, callback) {
var self = this;
wx.getShareInfo({
shareTicket: shareTicket,
complete(res) {
var param = {
"iv": res.iv,
"encryptedData": res.encryptedData,
"appId": self.appId,
"openId": wx.getStorageSync("openId")
};
self.getAesDecryptData(callback, param);

}
});
},
getAesDecryptData(callback, param) {
const self = this;
this.ajax('POST', this.config_url.aesDecryptData, param).then(res => {
console.log(res);
if (res.data.entry && res.data.entry.openGId) {
wx.setStorageSync("openGId", res.data.entry.openGId);
callback() && callback();
} else {
console.log('获取群id失败');
wx.login({
success(res) {
self.ajax('GET', self.config_url.refreshWxUserSessionKey, {
appId: self.appId,
code: res.code,
}).then(res => {
const { status, message } = res.data;
if (status) {
console.log('登录态刷新成功');
}
}, res => { });
}
});
wx.removeStorageSync('openGId');
}
});
},

转载于:https://www.cnblogs.com/jikaiyang/p/9049918.html

微信小程序AES解密失败相关推荐

  1. JAVA 微信小程序AES解密数据 demo

    这个链接是官方文档的地址,但是demo下载中没有java的demo https://developers.weixin.qq.com/miniprogram/dev/framework/open-ab ...

  2. java关于微信小程序AES解密

    1.springboot项目添加依赖 <!--微信AES用户信息解密--> <!-- https://mvnrepository.com/artifact/commons-codec ...

  3. java实现微信小程序加密数据解密的代码怎么写

    前言 微信小程序好坑啊!java明明是用户量最大的编程语言,可是都2021年了,他的小程序文档到现在都没有更新上java实现加密数据解密算法.... 微信小程序官方文档如下: 服务端获取开放数据 | ...

  4. Golang 微信小程序加密数据解密算法实现

    Go 语言 微信小程序加密数据解密算法实现 代码实现 本实现参考官方PHP例程实现,Go代码实现如下: func DecryptData (app_id, session_key, iv, encry ...

  5. 微信小程序密文解密工具

    微信小程序密文解密工具 小程序对于敏感信息采用了加密,如果想得到明文必须解密,官方上提供了几种语言的demo,唯独没有java版的,这是在搞事情啊 因此在此提供一个java版的解密工具类 此工具类需要 ...

  6. 微信小程序 AES加密ECB模式

    微信小程序 AES加密网上大部分是CBC模式,但是java后台用的是ECB模式 ECB模式 js文件下载 下载链接 (有好多写着ECB模式,但是下载了还是CBC的,可恨-) 下面展示一下两种模式解密结 ...

  7. 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed

    微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed 参考文章: (1)微信小程序加密解密 C# 以及 ...

  8. 微信小程序订阅消息失败

    微信小程序订阅消息失败 之前测试微信小程序订阅消息都是正常的,并且支持开发工具的调试,但是同样的方法换到另一个页面通过表单提交触发就没有效果.调试之后发现报错信息,errMsg: "requ ...

  9. 微信小程序获取openid失败

    解决微信小程序获取openid失败问题 安装node https://nodejs.org/en/download/ 右键云函数,在内建终端打开 npm install --save wx-serve ...

最新文章

  1. python实现简单的情感分析
  2. PHP 使用POST 获取不到部分数据问题
  3. 1022. 宠物小精灵之收服
  4. jzoj6316-djq的朋友圈【状压dp】
  5. asp.net最常用的三十三种编程代码
  6. Generator 实现
  7. 20210612:力扣第244周周赛题解(上)
  8. 水星怎么设置网速最快_水星路由器怎么设置网速 - 卡饭网
  9. 迭代器模式之看芒果台还是央视nie?
  10. 赵某于2011年3月23夜被捕获
  11. 微信对接会员管理系统搭建体系
  12. MetaTrader 4 电脑版安装指南
  13. JAVA视频网盘分享
  14. 2023MyBatis全新面试题【30题】
  15. 股票怎么量化选股?怎么在通达信接口运行公式?
  16. 秒杀各种Pay?Samsung Pay支付宝功能率先体验
  17. 人工智能创意赛—猫狗识别
  18. L5W2作业2 词向量的基本操作
  19. 计算机自培计划,个人年度自培计划
  20. '操作必须使用一个可更新的查询'解决方法

热门文章

  1. Pygame从0实战8(泡泡小游戏)
  2. 论文阅读《Robust Odometry Estimation for RGB-D Cameras》
  3. nginx开启https配置
  4. nginx请求的11个阶段
  5. Mac简历模板工具:Resume CV Lab Templates for Mac
  6. SaaS将导航中小企业
  7. 天文服务领域创新企业Skyline借助InterSystems IRIS数据平台,打造国内首个智能天文观测服务平台
  8. 三大运营商ocf电子书解决方案
  9. COOX基础培训之RS
  10. java设置验证码时出现乱码_JSP验证码大全之验证码使用与乱码解决