今天试了一下微信开发者平台,结果在配置url和token的时候老是出错,我一开始以为自己哪里配置错了,去了论坛后才知道,原来新浪的SAE必须要实名认证,不然就很容易会导致token验证失败或者无法正常接收或回复消息。
然后看到各种失败方法,想总结一下下。
1.当然是自己犯的,只要在echo $echoStr的前加header ('content—type:text');
原因:没有实名认证,所以要在php前加上新浪脚本;
2.url配置错误,例如:http://hui211314.sinaapp.com/wx_sample.php
原因:红色部分可能忘记写;
3.技术分析法:在代码里面加入跟踪http记录的方法来查看自己的服务器收到了请求没有回应,还是微信根本没有发请求过来。
通过调用系统环境变量$_SERVER,可以查看到HTTP请求的信息,其中两项重要的是。
<span style="font-size:18px;">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);
}
}
</span>
通过在微信开发源代码的后面加上它们,然后生成log.html文件,来查看微信是否有访问到你的url(虽然这个方法我试了,但是还没有配置php环境,所以并没有看到相应的的结果)