收藏
回答

微信小程序用户数据签名解密问题

问题模块
API和组件

我的服务器使用的是ThinkPHP5 框架

引用的官方 PHP的sample

我是将官方的文件作为拓展类引用的

运行后返回数据-41001

用这个错误编码从官方程序里找到了报错代码
<?php
namespace sample;

class ErrorCode
{
public static $OK 0;
public static $IllegalAesKey = -41001;
public static $IllegalIv = -41002;
public static $IllegalBuffer = -41003;
public static $DecodeBase64Error = -41004;
}
?>
IllegalAesKey 这个错误是什么意思,我应该怎么解决


最后一次编辑于  2017-07-03  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

3 个回答

  • 晨
    2017-07-03

    请检查一下sessionKey有没有正确的设置,WXBizDataCrypt类中decryptData时对sessionKey长度校验失败会产生该异常

    2017-07-03
    赞同
    回复 2
    • 言
      03-09

      我也遇到了这个问题,sessionKey是正常获取到的,解密失败时,不同code获取到的sessionKey相同,本次的sessionKey过期后,重新获取的sessionKey就可以正常解密了

      03-09
      回复
    • 言
      03-09回复

      这问题要怎么解决啊


      03-09
      回复
  • 杨健民
    杨健民
    2017-07-03

    走通了。顺着程序走了一遍把不通的地方的语法挨个调了一遍

    2017-07-03
    赞同
    回复
  • 杨健民
    杨健民
    2017-07-03
      $res = file_get_contents($url); //获取文件内容或获取网络请求的内容
    $resuu=json_decode($res, true);
           $session3rd = randomFromDev(16);

         
           $sessionKey = $resuu['session_key'];

           $encryptedData=Request::instance()->header('x-wx-encrypted-data');

           $iv = Request::instance()->header('x-wx-iv');

           $pc =new WXBizDataCrypt($appid, $sessionKey);
           $errCode = $pc->decryptData($encryptedData, $iv, $data );


    2017-07-03
    赞同
    回复