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连接MySQL的2种方法小结以及防止乱码
Mar 11 PHP
PHP遍历数组的三种方法及效率对比分析
Feb 12 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
Yii遍历行下每列数据的方法
Oct 17 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
Laravel使用Queue队列的技巧汇总
Sep 02 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
Aug 26 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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判断是否有Get参数的方法
2014/05/05 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
php中static和const关键字用法分析
2016/12/07 PHP
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
Javascript点击其他任意地方隐藏关闭DIV实例
2016/06/21 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
利用Js+Css实现折纸动态导航效果实例源码
2017/01/25 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
2017/09/01 Javascript
bootstrap Table服务端处理分页(后台是.net)
2017/10/19 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
解决vue 表格table列求和的问题
2019/11/06 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
[01:36]DOTA2完美大师赛趣味视频之与队友相处的十万个技巧
2017/11/19 DOTA
[00:33]2018DOTA2亚洲邀请赛TNC出场
2018/04/04 DOTA
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python去除文件中重复的行实例
2018/06/29 Python
pandas 选择某几列的方法
2018/07/03 Python
Python Flask前后端Ajax交互的方法示例
2018/07/31 Python
萨克斯第五大道精品百货店: Saks Fifth Avenue
2017/04/28 全球购物
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
机电职业生涯规划书范文
2014/03/08 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
教师评语大全
2014/04/28 职场文书
森林防火宣传标语
2014/06/27 职场文书
会计出纳岗位职责
2015/03/31 职场文书