最新公告
  • 欢迎您光临002y资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • php版微信开发Token验证失败或请求URL超时问题的解决方法

    正文概述    2023-06-02   240

    本文实例分析了php版微信开发Token验证失败或请求URL超时问题的解决方法。分享给大家供大家参考,具体如下:

    微信开发最近要用到的一个功能,其实就是一个非常的简单的用户输入然后自动搜索数据库并进行一个数据回复了,这个与官方没多大的问题,但小编就微信Token验证失败折腾了许多,下面解决了给各位分析一下.

    1.Token验证失败

    这个就是要检查配置文件了,最基本的就是

    define("TOKEN", "weixin"); weixin 是你的微信开发后台的ID

    微信开发Token验证失败或请求URL超时问题解决办法

    2.请求URL超时

    这个没什么办法多提交几次了,这个还有就是服务器安装了安全狗之类的软件把微信IP给拦截了,可以检查一下。

    3.官方下载一个wechatCallbackapiTest类然后进行一下操作即可,代码如下:

    define("TOKEN", "weixin");
    $wechatObj = new wechatCallbackapiTest();
    if (isset($_GET['echostr'])) {
      $wechatObj->valid();
    }else{
      $wechatObj->responseMsg();
    }
    

    wechatCallbackapiTest类就代码如下:

    class wechatCallbackapiTest
    {
      public function valid()
      {
        $echoStr = $_GET["echostr"];
        if($this->checkSignature()){
          echo $echoStr;
          exit;
        }
      }
      private function checkSignature()
      {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        if( $tmpStr == $signature ){
          return true;
        }else{
          return false;
        }
      }
      public function responseMsg()
      {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!emptyempty($postStr)){
          $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
          $fromUsername = $postObj->FromUserName;
          $toUsername = $postObj->ToUserName;
          $keyword = trim($postObj->Content);
          $time = time();
          $textTpl = "<xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[%s]]></MsgType>
                <Content><![CDATA[%s]]></Content>
                <FuncFlag>0</FuncFlag>
                </xml>";
          if($keyword != " " || !emptyempty( $keyword ) )
          {
      msgType = "text";
      //$contentStr .= date("Y-m-d H:i:s",time());
      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
      echo $resultStr;
          }
        }else{
          echo "";
          exit;
        }
      }
    }
    
    

    希望本文所述对大家PHP程序设计有所帮助。


    002y资源网 » php版微信开发Token验证失败或请求URL超时问题的解决方法

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    微信支付
    余额支付
    ×
    微信扫码支付 0 元