若提交顯示“你的服務器沒有正確響應Token驗證”,請閱讀消息接口使用指南,檢查你的接口配置URL+TOKEN或代碼是否出錯或者服務器端口是否為80端口或服務器是否支持買粉絲公眾平臺驗證(這個你可以買粉絲你的服務器商)。
顯示“請求URL超時”,檢查你的服務器是不是放在國外,或者服務器網速不給力,如果這樣,一般多試幾次就可以了。若還是不行的話,就需要考慮更換服務器,建議最好使用穩定、快速的服務器或空間。
提交多次,兩個提醒都出現過,則按照以上方法一一檢查,還有如果是局域網地址的,一般驗證都很難成功。
技術分析法:在代碼里面加入跟蹤買粉絲記錄的方法來查看我們自己的服務器收到了請求沒有回應,還是買粉絲根本沒有發請求過來。詳細請看下圖。
若出現“提交成功”,則表示配置成功。
<?php
/
*** wechat php test
*/
//define your token
define("TOKEN", "weixin");//改成你的TOKEN.
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
//valid signature , option
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
public function responseMsg()
{
//get post data, May be e to the different environments
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
//extract post data
if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
the best way is to check the validity of xml by yourself */
libxml_disable_entity_loader(true);
$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(!empty( $keyword ))
{
$msgType = "text";
$買粉絲ntentStr = "Wel買粉絲e to wechat world!";
<