Python语言

微信小程序

php语言

jsp语言

asp语言

C#/.NET

html5/css

javascript

c/vc/c++语言

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET微信开发

微信公众平台开发教程(二) 基本原理及消息接口总结

来源:中文源码网    浏览: 次    日期:2018年9月2日
【下载技术文档:  微信公众平台开发教程(二) 基本原理及消息接口总结 】


微信公众平台开发教程(二) 基本原理及消息接口总结 一、基本原理
在开始做之前,大家可能对这个很感兴趣,但是又比较茫然。是不是很复杂?很难学啊?
其实恰恰相反,很简单。为了打消大家的顾虑,先简单介绍了微信公众平台的基本原理。
微信服务器就相当于一个转发服务器,终端(手机、Pad等)发起请求至微信服务器,微信服务器,然后将请求转发给自定义服务(这就里就是我们的具体实现)。
服务处理完毕,然后挥发给微信服务器,微信服务器再将具体响应回复到终端。
通信协议为:HTTP
数据格式为:XML
具体的流程如下图所示:其实,我们需要做的事情,就是对HTTP请求,做出响应。
具体的请求内容,我们按照特定的XML格式去解析,处理完毕后,也要按照特定的XML格式返回。
我们只需要一个简单的实现HttpHandler即可。
当然,微信平台还能实现更加复杂的业务,比如微信可以作为内嵌的浏览器,我们可以通过微信的链接,打开htm界面,然后实现自己的逻辑。
二、消息接口(官方文档)
申请消息接口
点击申请 ,填写网址url和token,其中token可由开发者可以任意填写,用作生成签名。网址接入
公众平台用户提交信息后,微信服务器将发送GET请求到填写的URL上,并且带上四个参数:


参数
描述


signature
微信加密签名


timestamp
时间戳


nonce
随机数


echostr
随机字符串


开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,否则接入失败。
signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
加密/校验流程:1. 将token、timestamp、nonce三个参数进行字典序排序2. 将三个参数字符串拼接成一个字符串进行sha1加密3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
消息推送
当普通微信用户向公众账号发消息时,微信服务器将POST该消息到填写的URL上。结构如下:
文本消息


1348831860


1234567890123456


参数
描述


ToUserName
开发者微信号


FromUserName
发送方帐号(一个OpenID)


CreateTime
消息创建时间 (整型)


MsgType
text


Content
文本消息内容


MsgId
消息id,64位整型


图片消息


1348831860


1234567890123456


参数
描述


ToUserName
开发者微信号


FromUserName
发送方帐号(一个OpenID)


CreateTime
消息创建时间 (整型)


MsgType
image


PicUrl
图片链接


MsgId
消息id,64位整型


地理位置消息


1351776360

23.134521
113.358803
20

1234567890123456


参数
描述


ToUserName
开发者微信号


FromUserName
发送方帐号(一个OpenID)


CreateTime
消息创建时间 (整型)


MsgType
location


Location_X
地理位置纬度


Location_Y
地理位置经度


Scale
地图缩放大小


Label
地理位置信息


MsgId
消息id,64位整型


链接消息


1351776360

<![CDATA[公众平台官网链接]]>


1234567890123456


参数
描述


ToUserName
接收方微信号


FromUserName
发送方微信号,若为普通用户,则是一个OpenID


CreateTime
消息创建时间


MsgType
消息类型,link


Title
消息标题


Description
消息描述


Url
消息链接


MsgId
消息id,64位整型


事件推送
事件推送只支持微信4.5版本,目前开启自定义菜单接口事件推送、关注与取消关注事件推送。其余功能即将开放,敬请期待。

123456789





参数
描述


ToUserName
接收方微信号


FromUserName
发送方微信号,若为普通用户,则是一个OpenID


CreateTime
消息创建时间


MsgType
消息类型,event


Event
事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)


EventKey
事件KEY值,与自定义菜单接口中KEY值对应


消息回复
对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐)。
微信服务器在五秒内收不到响应会断掉连接。
回复xml结构如下:
回复文本消息


12345678




参数
描述


ToUserName
接收方帐号(收到的OpenID)


FromUserName
开发者微信号


CreateTime
消息创建时间


MsgType
text


Content
回复的消息内容,长度不超过2048字节


回复音乐消息


12345678


<![CDATA[TITLE]]>






参数
描述


ToUserName
接收方帐号(收到的OpenID)


FromUserName
开发者微信号


CreateTime
消息创建时间


MsgType
music


MusicUrl
音乐链接


HQMusicUrl
高质量音乐链接,WIFI环境优先使用该链接播放音乐


回复图文消息


12345678

2


<![CDATA[title1]]>





<![CDATA[title]]>








参数
描述


ToUserName
接收方帐号(收到的OpenID)


FromUserName
开发者微信号


CreateTime
消息创建时间


MsgType
news


ArticleCount
图文消息个数,限制为10条以内


Articles
多条图文消息信息,默认第一个item为大图


Title
图文消息标题


Description
图文消息描述


PicUrl
图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80。


Url
点击图文消息跳转链接


官方接口文档:http://mp.weixin.qq.com/wiki/index.php?title=%E6%B6%88%E6%81%AF%E6%8E%A5%E5%8F%A3%E6%8C%87%E5%8D%97
注意事项
1.用户OpenID对一个公众号是固定唯一的串
2.请使用80端口
尽请关注:后续我们将全面讲解具体的开发过程。
三、消息类图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中文源码网。

亲,试试微信扫码分享本页! *^_^*

精彩推荐

相关内容