接收到了易信的事件消息,并且按照规定格式返回了xml数据,但是没有弹出消息
收到的易信事件消息
<xml> <ToUserName><![CDATA[ddc28e3d9f8f0053c3061cd18d77b7a0]]></ToUserName> <FromUserName><![CDATA[a502f902bb9bde15]]></FromUserName> <CreateTime>1395362782</CreateTime> <MsgId>24</MsgId> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[CLICK]]></Event> <EventKey><![CDATA[cid449]]></EventKey> </xml> 返回的输出内容 <xml> <ToUserName><![CDATA[a502f902bb9bde15]]></ToUserName> <FromUserName><![CDATA[ddc28e3d9f8f0053c3061cd18d77b7a0]]></FromUserName> <CreateTime>1395362780</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>1</ArticleCount> <Articles> <item> <Title><![CDATA[【标题标题标题标题标题标题】]]></Title> <Description><![CDATA[摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要。]]></Description> <PicUrl><![CDATA[http://upfile.cache.XXXXX.XX/2014/0221/20140221041124451.jpg]]></PicUrl> <Url><![CDATA[http://www.XXXXX.XX/list-764-1.html]]></Url> </item></Articles></xml>
1、要注意XML格式得完全符合官方要求。
2、返回的数据如果带中文,请一定要转换为UTF8编码。
dsscn在3-2109:16回复
您好,是UTF8编码,对照了很多编,没有发现不符合官方要求的地方。
fufay在3-2109:18回复
@dsscn我先做个测试。手头还没代码。
dsscn在3-2109:30回复
@fufay论坛上翻了下,发现不少类似的情况,不过都没个结果或者解决的办法
#2{1}fufay在3-2109:57回复
我测试了下。当然,我收到的是文本消息,没有测试事件消息。
我的测试完全没有问题,客户端能够正常收到NEWS类型消息。
dsscn在3-2110:34回复
格式上对的,发现多输出了个调试信息。。。。现在好了,谢谢
代码片段1: case 'Test': $aryNews = array( array( 'title'=>'【标题标题标题标题标题标题】', 'description' => '摘要摘要摘要摘要摘要摘要摘要摘要摘要摘要。', 'picurl' => 'http://www.ctoffice.net/img/welcome.jpg', 'url' => 'http://www.baidu.com' ) ); return $this->echoNews($obj, $aryNews); break; 代码片段2: /* * 发送图文消息 * 注意:图文消息一次不能超过10条; */ private function echoNews($obj,$aryNews) { if(!empty($aryNews) && (count($aryNews) < 11)) { // 图文消息模板; $re = '<xml> <ToUserName><![CDATA['. $obj->FromUserName .']]></ToUserName> <FromUserName><![CDATA['. $obj->ToUserName .']]></FromUserName> <CreateTime>'. time() .'</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>'. count($aryNews) .'</ArticleCount> <Articles>'; for($i=0;$i<count($aryNews);$i++) { $re .= '<item> <Title><![CDATA['. $aryNews[$i]['title'] .']]></Title> <Description><![CDATA['. $aryNews[$i]['description'] .']]></Description> <PicUrl><![CDATA['. $aryNews[$i]['picurl'] .']]></PicUrl> <Url><![CDATA['. $aryNews[$i]['url'] .']]></Url> </item>'; } $re .= '</Articles></xml>'; return $re; } else return ''; }