php版微信开发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 RBAC使用DbManager实现后台权限判断的方法
这篇文章主要介绍了yii2 RBAC使用DbManager实现后台权限判断的方法,结合实例形式较为详细的分析了Yii2权限控制的原理与相关技巧,需要的朋友可以参考下2016-07-07IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置图文教程 2009年
IIS6+PHP5+MySQL5+Zend Optimizer+phpMyAdmin安装配置教程 2009年最新版2009-06-06PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK)流程教程详解
本篇文章给大家介绍PHP实现微信支付(jsapi支付)和退款(无需集成支付SDK)流程教程详解,使用了微信官方给的php版本的sdk,但是在使用过程中有很多问题,今天给大家讲讲不集成支付SDK直接调用支付接口实现支付和退款,感兴趣的朋友一起看看吧2018-03-03Zend Framework校验器Zend_Validate用法详解
这篇文章主要介绍了Zend Framework校验器Zend_Validate用法,结合实例形式分析了校验器Zend_Validate的功能、使用技巧与相关注意事项,需要的朋友可以参考下2016-12-12php使用filter过滤器验证邮箱 ipv6地址 url验证
原来判断邮箱、url和ip地址格式是否符合都是用正则表达式。后来才知道在php中也可以使用内置的函数库filter来完成这些功能,下面分享给大家2013-12-12
最新评论