微信企业号的消息。分成两种,调用微信接口发送的消息在接口文档中叫做发送消息,这样的消息是json格式的。在微信server给我们配置的URL post数据时发送的消息叫做接收消息和事件,须要加密解密,不须要调用微信接口,这样的消息的格式是XML格式的。
两种消息的差别和联系:
发送消息是json格式的,不须要加密解密。须要调用微信的接口,须要AccessToken,这样的消息适用于公众号主动推送下发消息。
接收消息和事件的格式是XML格式的,须要加密,不须要调用微信接口,不须要AccessToken。但每次都会包括msg_signature、timestamp、nonce等几个參数。这类消息事实上是微信把数据post到我们配置的URL时发生的。
事实上细致分析能够发现:全部主动调用微信接口的都须要參数AccessToken。不须要加密解密,json格式的包括创建菜单,管理通信录等。
而在微信把数据post到我们配置的URL时,则须要解密加密。不须要调用微信接口,不须要AccessToken,但每次都会包括msg_signature、timestamp、nonce等几个參数,XML格式的数据。
在接收消息与事件中,消息又分为:普通消息。事件,被动响应消息三类消息。
1普通消息事实上就是用户发送给企业号的消息。
实际执行路径是,用户发送消息,微信server把消息处理后post给我们配置的URL。我们在配置的URL的后台就能够获得用户发送的消息。
2事件,事实上也是用户的特殊动作导致的消息。比如点击菜单等。
实际执行路径是,用户发送消息。微信server把消息处理后post给我们配置的URL,我们在配置的URL的后台就能够获得用户发送的消息。
3被动响应消息。事实上是微信server把前两类消息post给我们配置的URL后,我们通过HttpContext.Current.Response.Write(encryptResponse)这样的方式,发送给微信server。微信server在把消息转给用户的消息。
细致分析能够发现前两类是用户是主动者,而被动响应消息是企业号由于用户的某些动作而产生的回应,这也许就是微信把这类消息叫做被动响应消息的原因吧。
前两类消息的流程图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" />
被动对应消息的顺序恰好相反。
发送消息和被动响应消息有什么差别呢?
发送消息是公众号主动推送消息给用户,被动响应消息是由于用户的原因导致了微信server器post到URL上。
从用户角度来说没有太大差别。
比如:用户回复1,公众号回复1,也就是简单的聊天。两种方式都能够。但被动响应消息速度能快一些,主动发送消息略微慢一点。但被动响应消息不能主动推送,主动发送消息却能够主动发送。