账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    小程序解密数据失败?
    48
    0

    代码流程是这样的:

    1. 前端调用wx.checkSession()判断Sessionkey是否失效,如果失效就调用wx.login()然后把登录凭证code传给后端;
    2. 后端根据凭证获取新的Sessionkey,并存入数据库(更新数据库中的数据);
    3. 前端获取到加密数据后传给后端解密;
    4. 后端从数据库取到最新的Sessionkey,根据官方提供的方法解密。解密成功之后数据传给前端。

    但非常奇怪的是第一天是可以正常解密的,第二天就会返回-41003的错误码:

    // 这是后端报错的代码片段
    $result=openssl_decrypt( $aesCipher, "AES-128-CBC", $aesKey, 1, $aesIV);
    $dataObj=json_decode( $result );
    if( $dataObj  == NULL ) {
        return array(
            'code'=>-41003,
            'msg'=>'aes 解密失败:'.$sessionKey
        );
    }

    debug过程

    • 尝试不调用wx.checkSession()而直接刷新Sessionkey,依然失败;
    • 后端的Sessionkey的确是最新的,每次刷新后数据库都会更新;
    • 解密时使用的Sessionkey和数据库最新数据对比一致;

    比较奇怪的点

    使用‘微信开发者工具’右上角的清缓存功能,点全部清除后,就能正确解密了。但是到了明天(或者过段时间)就又不行了。

    求解问题出在哪里?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部