如何解决php下微信牌验证失败的问题

  介绍

本篇文章给大家分享的是有关如何解决php下微信牌验证失败的问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

php下微信牌验证失败的解决办法:首先调用系统环境变量【$ _SERVER】,可以查看到HTTP请求的信息,然后将其写入到本地文件中,并用浏览器打开【url +日志。html】路径;最后在微信中点击提及即可。

<强> php下微信牌验证失败的解决办法:

我们在代码里面加入跟踪http记录的方法来查看我们自己的服务器收到了请求没有回应,还是微信根本没有发请求过来。
通过调用系统环境变量<代码> $ _SERVER>

如何解决php下微信牌验证失败的问题

把其加入代上面的代码中,并且将其写入到本地文件中来,全部代码

& lt; php ?/*   https://www.php.cn/版权2013 www.doucube.com保留所有权利   */traceHttp ();   定义(“TOKEN",“weixin");   美元wechatObj=new wechatCallbackapiTest ();   如果收取($ _GET [& # 39; echostr& # 39;])) {   美元wechatObj→有效();   其他}{   美元wechatObj→responseMsg ();   }   类wechatCallbackapiTest   {   公共职能有效()   {   $ echoStr=$ _GET [“echostr"];   if ($ this→checkSignature ()) {   echo $ echoStr;   退出;   }   }   私人checkSignature()函数   {   美元签名=$ _GET [“signature"];   时间戳美元=$ _GET [“timestamp"];   目前美元=$ _GET [“nonce"];   令牌美元=令牌;   $ tmpArr=数组(令牌,时间戳,美元目前美元);   排序($ tmpArr);   $ tmpStr=内爆($ tmpArr);   (tmpStr=sha1美元tmpStr);   如果(tmpStr==美元签名){   返回true;   其他}{   返回错误;   }   }   公共函数responseMsg ()   {   postStr=美元全局(“HTTP_RAW_POST_DATA");   如果(!空(postStr美元)){   $ postObj=simplexml_load_string (postStr美元,& # 39;simplexmlelement # 39;, LIBXML_NOCDATA);   fromUsername=postObj→美元fromUsername;   toUsername=postObj→美元toUsername;   (关键字=削减美元postObj→内容);   $=时间();   $ textTpl=? lt; xml>   & lt; ToUserName> & lt; ! [CDATA [% s]]祝辞& lt;/ToUserName>   & lt; FromUserName> & lt; ! [CDATA [% s]]祝辞& lt;/FromUserName>   & lt; CreateTime> % s   & lt; MsgType> & lt; ! [CDATA [% s]]祝辞& lt;/MsgType>   & lt; Content> & lt; ! [CDATA [% s]]祝辞& lt;/Content>   & lt; FuncFlag> 0 & lt;/FuncFlag>   & lt;/xml>“;   如果关键字==懊涝?“| | $关键字==?”)   {   $ msgType=皌ext";   $ contentStr=日期(“Y-m-d H:我:s"时间());   美元resultStr=sprintf ($ textTpl fromUsername美元toUsername美元,美元,msgType美元,美元contentStr);   echo $ resultStr;   }   其他}{   回声“,“;   退出;   }   }   }   traceHttp()函数   {   记录器(“\ n \ nREMOTE_ADDR:“$ _SERVER [“REMOTE_ADDR"]。(strstr ($ _SERVER (“REMOTE_ADDR") & # 39; 101.226 & # 39;) ?“;从WeiXin":“未知IP"));   记录器(“QUERY_STRING:“。$ _SERVER [“QUERY_STRING"]);   }   函数记录器(log_content美元)   {   如果收取($ _SERVER [& # 39; HTTP_APPNAME& # 39;])) {//SAE   sae_set_display_errors(假);   sae_debug ($ log_content);   sae_set_display_errors(真正的);   }{//其他地方   max_size=500000美元;   $ log_filename=發og.xml";   如果(file_exists (log_filename美元)和(abs(文件大小(log_filename美元))比;美元max_size)){拆开($ log_filename);}   写入log_filename美元,日期(& # 39;Y-m-d H:我:& # 39;)。美元log_content干净\ r \ n", FILE_APPEND);   }   }   祝辞;

这样,当我们提交之后,就会生成一个<代码> log.html 文件在当前目录

用浏览器直接打开填写的url,也会写一次文件。

直接用浏览器打开<代码> url +日志。> 2013-01-30 10:15:18   2013-01-30 10:15:18 REMOTE_ADDR: 212.179.24.103未知的IP   2013-01-30 10:15:18 QUERY_STRING:

在微信中点击提交一次,再一次生成记录,如下:

2013-01-30 10:15:49   2013-01-30 10:15:49 REMOTE_ADDR: 101.226.89.83 WeiXin   2013-01-30 10:15:49 QUERY_STRING:签名=eded789463180edf6c13691398d0cb4c85fb0e23& echostr=5838479218127813673×夯实=1359100969,nonce=1359376876

如何解决php下微信牌验证失败的问题