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 相关文章推荐
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
php页面防重复提交方法总结
Nov 25 PHP
PHP写的资源下载防盗链类分享
May 12 PHP
php技术实现加载字体并保存成图片
Jul 27 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
[原创]php求圆周率的简单实现方法
May 30 PHP
JSON两种结构之对象和数组的理解
Jul 19 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP封装的完整分页类示例
Aug 21 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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
如何做到多笔资料的同步
2006/10/09 PHP
PHP JSON格式的中文显示问题解决方法
2015/04/09 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
解决jquery插件冲突的问题
2014/01/23 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
以Python代码实例展示kNN算法的实际运用
2015/10/26 Javascript
jQuery中attr()与prop()函数用法实例详解(附用法区别)
2015/12/29 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
Vue分页器实现原理详解
2019/06/28 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
跟老齐学Python之正规地说一句话
2014/09/28 Python
利用python批量检查网站的可用性
2016/09/09 Python
在PyCharm中三步完成PyPy解释器的配置的方法
2018/10/29 Python
python三引号输出方法
2019/02/27 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
python try...finally...的实现方法
2020/11/25 Python
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
乡镇庆八一活动方案
2014/02/02 职场文书
银行委托书范本
2014/04/04 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
2015国庆节放假通知范文
2015/07/30 职场文书
离职告别感言
2015/08/04 职场文书
宾馆客房管理制度
2015/08/06 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
干货:企业内部人才推荐奖励方案!
2019/07/09 职场文书
MySQL基础(二)
2021/04/05 MySQL
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL