微信公众平台图文消息客户端无法收到

仅以此教训纪念我那逝去的粗心大意,也为那写还在无法收到图文消息的筒子们进一份微薄之力。以下问题,并不是什么技术问题,而是不留神造成的。

运行环境,SAE

RT,在测试图文消息时,不论是本地模拟还是使用“微信开发调试小工具1.2”,都能正常获得返回的xml内容。但手机端就是拿不到,这也是微信开发者的郁闷之一,无法调试到微信中心服务到客户端这个阶段的数据处理。煞费苦心之后(开通测试号,调代码,这里那里,甚至发现1个空格都觉得兴奋,但终究无解,毫无头绪),最后找到同事,看了一下他的返回xml,我去~~此处省略我那伤心的粗心大意一万遍。

先看看官方的格式:

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title> 
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
<item>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml> 

 筒子们,注意看标红的那2个属性,第一个代表发送给谁,第二个代表从哪里发送。

 再来看看,从微信公众平台那边接收过来的消息格式:

<xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName> 
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[this is a test]]></Content>
 <MsgId>1234567890123456</MsgId>
 </xml>

 这里依然有1个ToUserName和1个FromUserName,如果偷懒或者不留意,很容易直接把这2个属性的值套用到你要响应回去的消息中去,这样的结果~~~悲剧啊!

一定记得反过来,正确的设置ToUserName和FromUserName。这2个值是对于微信公众平台而言的,不是对公众号也不是对手机客户端。

另外再说一下使用SAE的storge存储时的问题,图片传上去了,web显示没问题,但是到手机上的微信里就没戏了,此时不要去想什么微信对url的黑白名单限制,真的没有这种限制。问题出在SAE的“防盗链”功能上,因为我开启的防盗链,图片在微信里就加载不了了。使用其他云服务或虚拟机服务等等的服务的筒子们,也许也会遇到类似问题。

猜你喜欢

转载自79140142-qq-com.iteye.com/blog/2026373
今日推荐