收藏
回答

微信公众号基本配置一直提示token检验失败,都要崩溃了,有官方技术指导一下吗?

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

1 个回答

  • 大山
    大山
    2023-08-07

    我模拟了一个接口地址 500了,逻辑应该是有语法错误。

    2023-08-07
    有用 1
    回复 18
    • 天道酬勤
      天道酬勤
      2023-08-07
      十分感谢,我的代码是用官方提供的代码,代码如下: public function token()
          {
              $signature = $_GET["signature"];
              $timestamp = $_GET["timestamp"];
              $nonce = $_GET["nonce"];
              $token = 'exfq156lxjfwx6xei5ys42j495b76sgm';
              $tmpArr = array($token, $timestamp, $nonce);
              Log::info($tmpArr);
              sort($tmpArr, SORT_STRING);
              $tmpStr = implode($tmpArr);
              $tmpStr = sha1($tmpStr);
              if ($tmpStr == $signature) {
                  return true;
              } else {
                  return false;
              }
          }
      2023-08-07
      回复
    • 天道酬勤
      天道酬勤
      2023-08-07
      而且没有任何日志信息
      2023-08-07
      回复
    • 天道酬勤
      天道酬勤
      2023-08-07回复BOBO
      有日志了:还是检验失败:日志如下:


      {"time":"2023-08-07T11:05:53+08:00","type":"diy1","msg":"s=/applets/GongzhonghaoQr/token&signature=de5e2e8a944c2f53af8585a0df492c1a9fa166e8&echostr=4537970118051946391&timestamp=1691377553&nonce=1773733141"}
      {"time":"2023-08-07T11:05:53+08:00","type":"diy2","msg":"16913775531773733141exfq156lxjfwx6xei5ys42j495b76sgm"}
      {"time":"2023-08-07T11:05:53+08:00","type":"diy3","msg":"4537970118051946391"}
      2023-08-07
      回复
    • 天道酬勤
      天道酬勤
      2023-08-07
      Log::info('abc123');
              Log::diy1($_SERVER["QUERY_STRING"]);
              // 获取微信服务器传递的参数
              $signature = $_GET['signature'];
              $timestamp = $_GET['timestamp'];
              $nonce = $_GET['nonce'];
              $echostr = $_GET['echostr'];
              $token = 'exfq156lxjfwx6xei5ys42j495b76sgm';
              // 将timestamp、nonce、token按字典序排序并拼接在一起
              $tmpArr = array($token, $timestamp, $nonce);
              sort($tmpArr);
              $tmpStr = implode($tmpArr);
              Log::diy2($tmpStr);
              Log::diy3($echostr);
              // 使用SHA1加密算法对$tmpStr进行加密
              $sha1Str = sha1($tmpStr);
              // 将加密后的字符串与微信服务器传递的signature进行对比
              if ($sha1Str === $signature) {
                  // 验证通过,输出echostr表示接入成功
                  echo $echostr;
              } else {
                  // 验证失败,输出错误信息或做其他处理
                  echo 'Token validation failed!';
              }
      2023-08-07
      回复
    • 天道酬勤
      天道酬勤
      2023-08-07
      依旧是提示校验失败,那位大咖帮着看看怎么回事
      2023-08-07
      回复
    查看更多(13)
登录 后发表内容
问题标签