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 相关文章推荐
文件上传的实现
Oct 09 PHP
php UTF-8、Unicode和BOM问题
May 18 PHP
fleaphp rolesNameField bug解决方法
Apr 23 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
Dec 25 PHP
php设计模式之观察者模式的应用详解
May 21 PHP
PHP多例模式介绍
Jun 24 PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
ThinkPHP3.1.3版本新特性概述
Jun 19 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
php版微信公众号自定义分享内容实现方法
Sep 22 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 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
PHP逐行输出(ob_flush与flush的组合)
2012/02/04 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP自动识别当前使用移动终端
2018/05/21 PHP
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
浅谈javascript中createElement事件
2014/12/05 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
js代码验证手机号码和电话号码是否合法
2015/07/30 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
webpack2.0配置postcss-loader的方法
2017/08/17 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
python处理cookie详解
2014/02/07 Python
Python处理文本换行符实例代码
2018/02/03 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
多个应用共存的Django配置方法
2018/05/30 Python
英国手工布艺沙发在线购买:Sofas & Stuff
2018/03/02 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
石油大学毕业生自荐信
2014/01/28 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书