/** * 消息回复 */ public function responseMsg() { $cache = Yii::$app->cache; //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); /** @var $fromUsername String */ $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $content = trim($postObj->Content) . ""; //转成字符串 $event = $postObj->Event; $msgType = $postObj->MsgType; $time = time(); $textTpl = "<xml>\n\t\t\t\t\t\t\t<ToUserName><![CDATA[%s]]></ToUserName>\n\t\t\t\t\t\t\t<FromUserName><![CDATA[%s]]></FromUserName>\n\t\t\t\t\t\t\t<CreateTime>%s</CreateTime>\n\t\t\t\t\t\t\t<MsgType><![CDATA[%s]]></MsgType>\n\t\t\t\t\t\t\t<Content><![CDATA[%s]]></Content>\n\t\t\t\t\t\t\t<FuncFlag>0</FuncFlag>\n\t\t\t\t\t\t\t</xml>"; //订阅事件 if ($event == "subscribe") { $response_msgType = "text"; Users::wxSubscribe($fromUsername); $contentStr = "感谢您关注云豆讲堂。\n\n在这里,您不但可以进行免费模拟考试、免费咨询考试信息、免费代办报名,还可以在线考试练习、与高手们交流学习心得、与朋友们整合考试资源。\n\n为了确保您获得准确的考试信息、试题库信息等,请您首先进行‘实名认证’。相关信息我们会保密哦!\n\n实名认证步骤:点击'模拟与学习'>>'实名认证'或者'<a href='" . Url::to(['account/register', 'openId' => strval($fromUsername)], true) . "'>点击这里</a>'都可以进行,祝您考试顺利!\n\n<a href='http://x.eqxiu.com/s/d3HPgVVe?eqrcode=1&from=groupmessage&isappinstalled=0'>查看云豆平台应用手册</a>"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $response_msgType, $contentStr); echo $resultStr; exit; } //任何消息,转往多客服 if (!empty($content)) { $serviceTpl = "<xml>\n <ToUserName><![CDATA[%s]]></ToUserName>\n <FromUserName><![CDATA[%s]]></FromUserName>\n <CreateTime>%s</CreateTime>\n <MsgType><![CDATA[transfer_customer_service]]></MsgType>\n </xml>"; $resultStr = sprintf($serviceTpl, $fromUsername, $toUsername, $time); echo $resultStr; exit; } else { echo "individual"; exit; } } else { echo ""; exit; } }