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

 更新时间:2016年09月23日 12:18:05   作者:smiling  
这篇文章主要介绍了php版微信开发Token验证失败或请求URL超时问题的解决方法,简单分析了Token验证失败及请求URL超时的原因及相关解决方法,需要的朋友可以参考下

本文实例分析了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相关内容感兴趣的读者可查看本站专题:《PHP微信开发技巧汇总》、《PHP编码与转码操作技巧汇总》、《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

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

相关文章

  • Yii2.0预定义的别名功能小结

    Yii2.0预定义的别名功能小结

    这篇文章主要介绍了Yii2.0预定义的别名功能,总结分析了Yii2.0常见的12个预定义别名的具体表示方法与对应功能,需要的朋友可以参考下
    2016-07-07
  • magento后台无法登录解决办法的两种方法

    magento后台无法登录解决办法的两种方法

    可能很多朋友有同样的经历,magento在服务器中配置域名是可以正常的访问了,但是在本地配置后却无法登录后台,账号密码登录的时候发现出现空白,无法跳转到后台,本文章向大家介绍两种解决本地magento后台无法登录的方法,需要的朋友可以参考下
    2016-12-12
  • PHP实现用户登录的案例代码

    PHP实现用户登录的案例代码

    这篇文章主要介绍了PHP实现用户登录的案例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 如何正确配置Nginx + PHP

    如何正确配置Nginx + PHP

    这篇文章主要为大家详细介绍了配置Nginx + PHP的步骤,了解Nginx + PHP配置的简单教程,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • 基于PHP实现用户在线状态检测

    基于PHP实现用户在线状态检测

    这篇文章主要介绍了基于PHP实现用户在线状态检测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • PHP 只允许指定IP访问(允许*号通配符过滤IP)

    PHP 只允许指定IP访问(允许*号通配符过滤IP)

    今天有朋友问我如何只允许指定IP访问,默认禁止其它ip访问,脚本之家小编以前分享的是如何限制指定ip访问,这里正好分享下,需要的朋友可以参考下
    2014-07-07
  • PHP receiveMail实现收邮件功能

    PHP receiveMail实现收邮件功能

    这篇文章主要为大家详细介绍了PHP receiveMail实现收邮件功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • PHP把小数转成整数3种方法

    PHP把小数转成整数3种方法

    这篇文章主要介绍了PHP把小数转成整数3种方法,实际上是使用的PHP自带的3个函数,分别是floor、ceil和round,需要的朋友可以参考下
    2014-06-06
  • php生成Android客户端扫描可登录的二维码

    php生成Android客户端扫描可登录的二维码

    这篇文章主要为大家详细介绍了php生成Android客户端扫描可登录的二维码吗,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • php实现微信分享朋友链接功能

    php实现微信分享朋友链接功能

    这篇文章主要为大家详细介绍了php实现微信分享朋友链接,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02

最新评论