用微信自带的消息接口调试都成功获得回应,但关注了公众号却没有回复。而且我发现在php里加入了一句插入数据库的代码,发现根本没运行(接口调试时有运行)。究竟什么原因?
<?php
namespace Home\Controller;
use Think\Controller;
class WeixinController extends BaseController {
public function index(){
//define your token
define("TOKEN", C("TOKEN"));
$wechatObj = new \Weixin\weixin();
if (isset($_GET['echostr'])) {
$wechatObj->valid();
}else{
$this->responseMsg();
}
}
private function responseMsg(){
//get post data, May be due 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";
$contentStr = "Welcome to wechat world!";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $keyword);
echo $resultStr;
}else{
echo "Input something...";
}
}else {
echo "";
exit;
}
}
private function test($content){
$m = M('list');
return $m->execute("UPDATE list SET website = '{$content}' WHERE name = 'test'");
}
}
...你不贴代码 怎么分析
难道打算让老夫掐指为你算一卦?