Esempio n. 1
0
 /**
  * 消息回复
  */
 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;
     }
 }