/** * 处理文本消息 * * @param SimpleXMLElement $postObj * @param boolean $is_voice * @return response msg string */ private function dealTextMsg($postObj, $is_voice = FALSE) { $fromUserName = $postObj->FromUserName; $toUserName = $postObj->ToUserName; $keyword = trim($postObj->Content); $openid = $fromUserName; $reqtime = intval($postObj->CreateTime); trace_debug('weixin_reply_' . ($is_voice ? 'voice' : 'text'), $keyword); $responseText = ''; $queryResult = $this->helper->onTextQuery($keyword, $result_type); if (empty($queryResult)) { //没查找到任何可回复的信息 $baidu_sou = $this->helper->sou($keyword); $contentText = "抱歉,没有找到你想要的东西!小蜜帮你<a href=\"{$baidu_sou}\">度娘一下</a>吧/::P"; $responseText = self::packMsg(self::MSG_TYPE_TEXT, $fromUserName, $toUserName, array('content' => $contentText)); } else { if ('string' == $result_type) { //一般文本 $responseText = self::packMsg(self::MSG_TYPE_TEXT, $fromUserName, $toUserName, array('content' => $queryResult)); } elseif ('arr_article' == $result_type) { //最新文章 $item = ''; foreach ($queryResult as $news) { $extra = array(); $extra['title'] = $news['title']; $extra['description'] = $news['digest']; $extra['picUrl'] = $this->siteUrl . $news['thumb_media_url']; $extra['url'] = $news['url']; $item .= self::packMsg(self::MSG_TYPE_NEWS_ITEM, '', '', $extra); } $responseText = self::packMsg(self::MSG_TYPE_NEWS, $fromUserName, $toUserName, array('articleCount' => count($queryResult), 'articles' => $item)); } elseif ('arr_goods' == $result_type) { //匹配搜索的商品 $item = ''; foreach ($queryResult as $goods) { $extra = array(); $extra['title'] = $goods['goods_name']; $extra['description'] = $goods['goods_name']; $extra['picUrl'] = preg_match('/^http:\\/\\//', $goods['goods_thumb']) ? $goods['goods_thumb'] : Goods::goods_picurl($goods['goods_thumb']); $extra['url'] = Goods::goods_url($goods['goods_id'], TRUE); $item .= self::packMsg(self::MSG_TYPE_NEWS_ITEM, '', '', $extra); } $responseText = self::packMsg(self::MSG_TYPE_NEWS, $fromUserName, $toUserName, array('articleCount' => count($queryResult), 'articles' => $item)); } } return $responseText; }