收藏
回答

解密sessionKey没有过期,但是还是提-41003: aes 解密失败?

通过官方的demo,把请求的来的 sessionKey    encryptedData    iv  全部填进去,还是提示   -41003: aes 解密失败  ,确定sessionKey    没有过期,还有可能是什么原因?一直是这样。

回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    2019-09-04

    参考下之前反馈的开发者的解决策略:

    2019-09-04
    有用
    回复 1
    • 蓝紫色的悲伤
      蓝紫色的悲伤
      2019-09-04
      调用顺序没错,先调用的登陆接口获取的sessionKey,然后去获取手机号,解密,传递消息也经过了urlencode 和URLDecode ,sessionKey也检查了没有过期,还是提示 -41003
      2019-09-04
      回复
  • 蓝紫色的悲伤
    蓝紫色的悲伤
    04-27

    已经解决了,在进行一次解码就好

    $iv=$param['iv'];

        $encryptedData=$param['encryptedData'];

            $encryptedData=urldecode($encryptedData);//再次编码解码一次防止有特殊字符,如果浏览器直接访问的话,这行要注释掉,浏览器会自动进行解码

            $iv=urldecode($iv);//再次编码解码一次防止有特殊字符,

            $errCode=$this->decryptData($sessionKey,$shops['wx_appid'], $encryptedData, $iv,$data);

            //用sessionKey解密数据encryptedData

            if ($errCode !== 0) {

                return ['status'=>0,'msg'=>self::$encryptDataNotMatch];

            }

            $data = json_decode($data, true);//转成数组

    04-27
    有用
    回复
登录 后发表内容
问题标签