Token验证失败的解决方法
2018-01-29 16:11
507 查看
url:http://blog.csdn.net/yafei450225664/article/details/53129053
你可以先用下面的测试通过
URL: http://wx.xxxxx.com/to.php
Token: weixin
消息加解密方式: 明文模式
你可以先用下面的测试通过
URL: http://wx.xxxxx.com/to.php
Token: weixin
消息加解密方式: 明文模式
<?php /* 方倍工作室 http://www.cnblogs.com/txw1958/ CopyRight 2013 www.doucube.com All Rights Reserved */ traceHttp(); define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (isset($_GET['echostr'])) { $wechatObj->valid(); }else{ $wechatObj->responseMsg(); } 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 (!empty($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 == "?" || $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; } } } function traceHttp() { logger("\n\nREMOTE_ADDR:".$_SERVER["REMOTE_ADDR"].(strstr($_SERVER["REMOTE_ADDR"],'101.226')? " FROM WeiXin": "Unknown IP")); logger("QUERY_STRING:".$_SERVER["QUERY_STRING"]); } function logger($log_content) { if(isset($_SERVER['HTTP_APPNAME'])){ //SAE sae_set_display_errors(false); sae_debug($log_content); sae_set_display_errors(true); }else{ //LOCAL $max_size = 500000; $log_filename = "log.xml"; if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);} file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND); } } ?>
相关文章推荐
- [zz]Token验证失败的解决方法
- Token验证失败的解决方法
- Token验证失败的解决方法
- 微信token验证失败的解决方法
- SAE微信公众号PHP SDK, token一直验证失败的解决方法
- Token验证失败的解决方法
- php版微信开发Token验证失败或请求URL超时问题的解决方法
- 安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
- 解决oracle12c安装报“[INS-30131]执行安装程序验证所需的初始设置失败(原因:无法访问临时位置)”方法
- (转载)postgresql navicat 客户端连接验证失败解决方法:password authentication failed for user
- SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法【已验证
- 微信公众平台你的服务器没有正确响应Token验证的解决方法
- SqlServer2008 windows身份验证 登陆失败解决方法
- win7安装oracle1方法2c问题及解决- [INS-30131] 执行安装程序验证所需的初始设置失败。
- Win7上安装32位Oracle客户端错误解决方法:[INS-30131] 执行安装程序验证所需的初始设置失败
- 微信开发token验证失败的解决
- 验证视图状态 MAC 失败解决方法
- 安装oracle执行安装程序验证所需的初始设置失败的解决方法
- 客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法
- 微信开发之easyWchat服务器配置验证Token失败原因及解决办法