Basic principles of WeChat public platform development and message reception

高洛峰
Release: 2017-03-06 09:19:37
Original
2034 people have browsed it

1. Basic Principles

Before you start doing it, you may be very interested in this, but at a loss. Is it complicated? Is it difficult to learn?

In fact, it’s just the opposite, it’s very simple. In order to dispel everyone's concerns, I first briefly introduce the basic principles of the WeChat public platform.

The WeChat server is equivalent to a forwarding server. The terminal (mobile phone, Pad, etc.) initiates a request to the WeChat server, and the WeChat server then forwards the request to the custom service (this is our specific implementation).

After the service is processed, it is then evaporated to the WeChat server, and the WeChat server then replies with a specific response to the terminal.

The communication protocol is: HTTP

The data format is: XML

The specific process is as shown in the figure below:

Basic principles of WeChat public platform development and message reception

# #Actually, what we need to do is respond to HTTP requests.

We will parse the specific request content according to the specific XML format. After processing, we will also return it according to the specific XML format.

We only need a simple implementation of HttpHandler.

Of course, the WeChat platform can also implement more complex businesses. For example, WeChat can be used as an embedded browser. We can open the htm interface through the WeChat link and then implement our own logic.

2. Message interface (official document)

Apply for message interface

Click to apply. Fill in the URL and token. The token can be filled in by the developer to generate a signature.

Website access

After the public platform user submits the information, the WeChat server will send a GET request to the filled-in URL with four parameters:

Parameters Description signature WeChat encrypted signature timestamp Timestamp nonce Random number echostr Random string
#Developers verify the request by checking the signature (the verification method is below). If it is confirmed that this GET request comes from the WeChat server, please return the echostr parameter content as it is, then the access will take effect, otherwise the access will fail.

signature combines the token parameter filled in by the developer with the timestamp parameter and nonce parameter in the request.

加密/校验流程: 1. 将token、timestamp、nonce三个参数进行字典序排序 2. 将三个参数字符串拼接成一个字符串进行sha1加密 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
Copy after login

Message push

When an ordinary WeChat user sends a message to a public account, the WeChat server will POST the message to the filled-in URL. The structure is as follows:

Text message
   1348831860   1234567890123456 
Copy after login

Parameters Description ToUserName FromUserName Sender account (an OpenID) CreateTime Message creation time (integer) MsgType text Content Text message content MsgId Message id, 64-bit integer
DeveloperWeChat ID

Picture Message
   1348831860   1234567890123456 
Copy after login

Parameters Description ToUserName FromUserName Sender account (an OpenID) CreateTime Message creation time (integer) MsgType image PicUrl Picture link MsgId Message id, 64-bit integer
DeveloperWeChat ID

Geolocation message
   1351776360  23.134521 113.358803 20  1234567890123456 
Copy after login

链接消息

   1351776360  <![CDATA[公众平台官网链接]]>   1234567890123456 
Copy after login
Parameters Description ToUserName FromUserName Sender account (an OpenID) CreateTime Message creation time (integer) MsgType location Location_X Location latitude Location_Y Location longitude Scale Map zoom size Label Geographical location information MsgId Message id, 64-bit integer
DeveloperWeChat ID
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,link
Title 消息标题
Description 消息描述
Url 消息链接
MsgId 消息id,64位整型

事件推送

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

  123456789    
Copy after login
参数 描述
ToUserName 接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime 消息创建时间
MsgType 消息类型,event
Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey 事件KEY值,与自定义菜单接口中KEY值对应

消息回复

对于每一个POST请求,开发者在响应包中返回特定xml结构,对该消息进行响应(现支持回复文本、图文、语音、视频、音乐)。

微信服务器在五秒内收不到响应会断掉连接。

回复xml结构如下:

回复文本消息

   12345678   
Copy after login
参数 描述
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间
MsgType text
Content 回复的消息内容,长度不超过2048字节

回复音乐消息

   12345678   <![CDATA[TITLE]]>     
Copy after login
参数 描述
ToUserName 接收方帐号(收到的OpenID)
FromUserName 开发者微信号
CreateTime 消息创建时间
MsgType music
MusicUrl 音乐链接
HQMusicUrl 高质量音乐链接,WIFI环境优先使用该链接播放音乐

回复图文消息

   12345678  2   <![CDATA[title1]]>      <![CDATA[title]]>      
Copy after login

参数 描述
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端口

尽请关注:后续我们将全面讲解具体的开发过程。

三、消息类图

Basic principles of WeChat public platform development and message reception


更多Basic principles of WeChat public platform development and message reception相关文章请关注PHP中文网!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!