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


Posted in PHP onSeptember 23, 2016

本文实例分析了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_SELF的安全问题
Sep 05 PHP
php面向对象全攻略 (八)重载新的方法
Sep 30 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
ThinkPHP CURD方法之where方法详解
Jun 18 PHP
PHP调用C#开发的dll类库方法
Jul 28 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
PHP正则表达式入门教程(推荐)
May 18 PHP
Yii2中关联查询简单用法示例
Aug 10 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
php实现的错误处理封装类实例
Jun 20 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 #PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
Sep 23 #PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
Sep 23 #PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 #PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 #PHP
php利用递归实现删除文件目录的方法
Sep 23 #PHP
php版微信公众平台开发之验证步骤实例详解
Sep 23 #PHP
You might like
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
PHP遍历二维数组的代码
2011/04/22 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
javascript中的对象和数组的应用技巧
2007/01/07 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
理解Javascript_05_原型继承原理
2010/10/13 Javascript
js实现广告漂浮效果的小例子
2013/07/02 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
jQuery复合事件结合toggle()方法的用法示例
2017/06/10 jQuery
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
python实现数通设备tftp备份配置文件示例
2014/04/02 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
如何使用python进行pdf文件分割
2019/11/11 Python
想学画画?python满足你!
2020/12/24 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
蔬菜基地的创业计划书
2014/01/06 职场文书
转党组织关系介绍信
2014/01/08 职场文书
集中整治工作方案
2014/05/01 职场文书
企业员工薪酬方案
2014/06/04 职场文书
制冷与空调专业毕业生推荐信
2014/07/07 职场文书
爬山的活动方案
2014/08/16 职场文书
小学同学聚会感言
2015/07/30 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle
Python 中面向接口编程
2022/05/20 Python