腾讯微信公众平台开发教程(二)

>>微信公众平台接口申请地址
 

一 、微信公众平台消息接口简介

公众平台消息接口为开发者提供了一种新的消息处理方式。

二 、 微信公众平台消息接口申请

点击申请,如实填写负责人姓名 、 手机号和邮箱,填写网址url和token,其中token可由开发者可以任意填写,用作生成签名。

三 、 网址接入

公众平台用户提交信息后,我们将以GET请求方式请求到填写的Url上,并且带上四个参数:

  1. signature — 微信加密签名
  2. timestamp — 时间戳
  3. nonce — 随机数
  4. echostr — 随机字符串

开发者通过检验signature对网址接入合法性进行校验。若此次GET请求原样返回echostr参数内容,则接入生效,否则接入失败。 验证signature将结合开发者填写的token参数、timestamp参数和nonce参数等,加密流程:

  • 将token、timestamp、nonce三个参数进行字典序排序
  • 将三个参数字符串拼接成一个字符串进行sha1加密
  • 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。

四 、 消息推送

当普通微信用户向公众账号发消息时,公众平台将POST该消息到填写的Url上(现支持文本消息以及地理位置消息)。结构如下:
文本消息xml格式

1
2
3
4
5
6
7
  <xml>
        <ToUserName> <![CDATA[toUser]]> </ToUserName>
        <FromUserName> <![CDATA[fromUser]]> </FromUserName>
        <CreateTime>1348831860 </CreateTime>
        <MsgType> <![CDATA[text]]> </MsgType>
        <Content> <![CDATA[this is a test]]> </Content>
      </xml>
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 文本消息为text
Content 消息内容

地理位置消息xml格式

1
2
3
4
5
6
7
8
9
10
   <xml>
        <ToUserName> <![CDATA[toUser]]> </ToUserName>
        <FromUserName> <![CDATA[fromUser]]> </FromUserName>
        <CreateTime>1351776360 </CreateTime>
        <MsgType> <![CDATA[location]]> </MsgType>
        <Location_X>23.134521 </Location_X>
        <Location_Y>113.358803 </Location_Y>
        <Scale>20 </Scale>
        <Label> <![CDATA[位置信息]]> </Label>
      </xml>
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型,地理位置为location
Location_X 地理位置纬度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息

图片消息结构

1
2
3
4
5
6
7
   <xml>
        <ToUserName> <![CDATA[toUser]]> </ToUserName>
        <FromUserName> <![CDATA[fromUser]]> </FromUserName>
        <CreateTime>1348831860 </CreateTime>
        <MsgType> <![CDATA[image]]> </MsgType>
        <PicUrl> <![CDATA[this is a url]></PicUrl>
    </xml>
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型image
PicUrl 图片链接,开发者可以用HTTP GET获取

五 、 消息回复

对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行相应操作(现支持回复文本消息 、 回复图文消息和星标操作)。xml结构如下:
回复文本消息格式

1
2
3
4
5
6
7
8
     <xml>
        <ToUserName> <![CDATA[toUser]]> </ToUserName>
        <FromUserName> <![CDATA[fromUser]]> </FromUserName>
        <CreateTime>12345678 </CreateTime>
        <MsgType> <![CDATA[text]]> </MsgType>
        <Content> <![CDATA[content]]> </Content>
        <FuncFlag>0 </FuncFlag>
      </xml>

参数解释:

FromUserName 消息发送方
ToUserName 消息接收方
CreateTime 消息创建时间
MsgType 消息类型,文本消息必须填写text
Content 消息内容,大小限制在2048字节,字段为空为不合法请求

回复图文消息格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
     <xml>
          <ToUserName> <![CDATA[toUser]]> </ToUserName>
          <FromUserName> <![CDATA[fromUser]]> </FromUserName>
          <CreateTime>12345678 </CreateTime>
          <MsgType> <![CDATA[news]]> </MsgType>
          <Content> <![CDATA[]]> </Content>
          <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>
          <FuncFlag>1 </FuncFlag>
        </xml>

参数解释:

FromUserName 消息发送方
ToUserName 消息接收方
CreateTime 消息创建时间
MsgType 消息类型,图文消息必须填写news
Content 消息内容,图文消息可填空
ArticleCount 图文消息个数,限制为10条以内
Articles 多条图文消息信息,默认第一个item为大图
Title 图文消息标题
Description 图文消息描述
PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80,限制图片链接的域名需要与开发者填写的基本资料中的Url一致
Url 点击图文消息跳转链接

星标消息
在xml结构中,有一个FuncFlag字段,开发者可以通过填写FuncFlag字段为1来对消息进行星标,你可以在实时消息的星标消息分类中找到该消息

猜你喜欢

转载自blog.csdn.net/dulgao/article/details/16805111
今日推荐