准确来讲不是有时,是隔断时间后必然失败(貌似不是因为Sessionkey没更新,请看下文)

代码流程是这样的:

    前端调用wx.checkSession()判断Sessionkey是否失效,如果失效就调用wx.login()然后把登录凭证code传给后端;

    后端根据凭证获取新的Sessionkey,并存入数据库(更新数据库中的数据);

    前端获取到加密数据后传给后端解密;

    后端从数据库取到最新的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,依然失败;

      后端的Session

展开全部
收起
8回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • zqsg走一波

    15人对此回答表示赞同

    我们也是偶尔很大几率丢失

    展开
    15
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 酥油茶

    14人对此回答表示赞同

    我也是一样的问题。。。竟然这么容易出错

    展开
    14
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 纸短情长

    13人对此回答表示赞同

    我也遇到,我是在获得用户手机号出现的问题。原因是因为加密和解密的sessionKey不一致导致。

    展开
    13
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 肆无忌惮

    9人对此回答表示赞同

    帮顶!让官方看到

    展开
    9
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 汪撕葱

    8人对此回答表示赞同

    保证wx.login的code在wx.getUserInfo之前返回

    展开
    8
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 黎明星晨

    5人对此回答表示赞同

    求帮忙

    展开
    5
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • Janaya

    4人对此回答表示赞同

    我也遇到过这样的情况

    展开
    4
    0回复
    发布于 6年前

    评论(0)

    收起评论

  • 林小姐也是lyn

    2人对此回答表示赞同

    建议先看下这个回答,看看是不是遇到同类型问题

    展开
    2
    1回复
    发布于 6年前

    评论(1)

    收起评论

    • 一桶冰水 2019-01-11 22:54

      官方真的很敷衍!

      回复
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部