Maison > Applet WeChat > Développement WeChat > le corps du texte

Principes de base du développement de la plateforme publique WeChat et de la réception des messages

高洛峰
Libérer: 2017-03-06 09:19:37
original
2144 Les gens l'ont consulté

1. Principes de base

Avant de commencer à le faire, cela peut vous intéresser beaucoup, mais perdu. Est-ce compliqué ? Est-ce difficile à apprendre ?

En fait, c’est tout le contraire, c’est très simple. Afin de dissiper les inquiétudes de chacun, je présente d'abord brièvement les principes de base de la plateforme publique WeChat.

Le serveur WeChat est équivalent à un serveur de transfert. Le terminal (téléphone portable, Pad, etc.) initie une requête au serveur WeChat, et le serveur WeChat transmet ensuite la requête au service personnalisé (c'est-à-dire notre implémentation spécifique).

Une fois le service traité, il est ensuite évaporé sur le serveur WeChat, et le serveur WeChat répond ensuite avec une réponse spécifique au terminal.

Le protocole de communication est : HTTP

Le format des données est : XML

Le processus spécifique est tel qu'illustré dans la figure ci-dessous :

Principes de base du développement de la plateforme publique WeChat et de la réception des messages

En fait, ce que nous devons faire, c'est répondre aux requêtes HTTP.

Nous analyserons le contenu spécifique de la demande selon un format XML spécifique. Après traitement, nous le renverrons également selon un format XML spécifique.

Nous n’avons besoin que d’une simple implémentation de HttpHandler.

Bien sûr, la plateforme WeChat peut également mettre en œuvre des activités plus complexes. Par exemple, WeChat peut être utilisé comme navigateur intégré. Nous pouvons ouvrir l'interface htm via le lien WeChat et implémenter notre propre logique.

2. Interface de message (document officiel)

Demander une interface de message

Cliquez pour appliquer, Remplissez l'URL et le jeton. Le jeton peut être renseigné par le développeur pour générer une signature.

Accès au site Web

Une fois que l'utilisateur de la plateforme publique a soumis les informations, le serveur WeChat enverra une requête GET à l'URL renseignée avec quatre paramètres :

参数 描述
signature 微信加密签名
timestamp 时间戳
nonce 随机数
echostr 随机字符串

Le développeur vérifie la demande en vérifiant la signature (les méthodes de vérification sont répertoriées ci-dessous). S'il est confirmé que cette requête GET provient du serveur WeChat, veuillez renvoyer le contenu du paramètre echostr tel quel, alors l'accès prendra effet, sinon l'accès échouera.

signature combine le paramètre token renseigné par le développeur avec le paramètre timestamp et le paramètre nonce dans la requête.

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

Message Push

Lorsqu'un utilisateur WeChat ordinaire envoie un message à un compte public, le serveur WeChat PUBLIE le message sur l'URL renseignée supérieure. La structure est la suivante :

Message texte

 <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>
Copier après la connexion
< tr>
ParamètreDescription
ToUserName
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypetext
Content文本消息内容
MsgId消息id,64位整型
Développeur

ID WeChat

FromUserNameCompte expéditeur (un OpenID)
CreateTimeDurée de création du message (entier)< /td>
MsgTypetexte
ContenuContenu du message texte
MsgIdIdentifiant du message, entier 64 bits
Message image
 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>1348831860</CreateTime>
 <MsgType><![CDATA[image]]></MsgType>
 <PicUrl><![CDATA[this is a url]]></PicUrl>
 <MsgId>1234567890123456</MsgId>
 </xml>
Copier après la connexion
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypeimage
PicUrl图片链接
MsgId消息id,64位整型
< /tr>< td>Identifiant du message, entier 64 bits
ParamètreDescription
ToUserName

DéveloppeurID WeChat

FromUserNameEnvoyer la partie compte (un OpenID)
CreateTimeDurée de création du message (entier)
MsgType image
PicUrlLien image
MsgId
Message de géolocalisation
<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>
<MsgId>1234567890123456</MsgId>
</xml>
Copier après la connexion
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypelocation
Location_X地理位置纬度
Location_Y地理位置经度
Scale地图缩放大小
Label地理位置信息
MsgId消息id,64位整型
<🎜>< td>Location_X
ParamètreDescription
ToUserName <🎜>Développeur<🎜>ID WeChat
FromUserNameCompte expéditeur (un OpenID)
CreateTimeHeure de création du message (entier)
MsgTypeemplacement
Latitude de l'emplacement
Location_YLongitude de l'emplacement
ÉchelleTaille du zoom de la carte
ÉtiquetteInformations de localisation géographique
MsgIdIdentifiant du message, entier 64 bits

链接消息

<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1351776360</CreateTime>
<MsgType><![CDATA[link]]></MsgType>
<Title><![CDATA[公众平台官网链接]]></Title>
<Description><![CDATA[公众平台官网链接]]></Description>
<Url><![CDATA[url]]></Url>
<MsgId>1234567890123456</MsgId>
</xml>
Copier après la connexion
参数描述
ToUserName接收方微信号
FromUserName发送方微信号,若为普通用户,则是一个OpenID
CreateTime消息创建时间
MsgType消息类型,link
Title消息标题
Description消息描述
Url消息链接
MsgId消息id,64位整型

事件推送

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

<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[FromUser]]></FromUserName>
<CreateTime>123456789</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[EVENT]]></Event>
<EventKey><![CDATA[EVENTKEY]]></EventKey>
</xml>
Copier après la connexion
参数描述
ToUserName接收方微信号
FromUserName发送方微信号,若为普通用户,则是一个OpenID
CreateTime消息创建时间
MsgType消息类型,event
Event事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey事件KEY值,与自定义菜单接口中KEY值对应

消息回复

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

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

回复xml结构如下:

回复文本消息

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>12345678</CreateTime>
 <MsgType><![CDATA[text]]></MsgType>
 <Content><![CDATA[content]]></Content>
 </xml>
Copier après la connexion
参数描述
ToUserName接收方帐号(收到的OpenID)
FromUserName开发者微信号
CreateTime消息创建时间
MsgTypetext
Content回复的消息内容,长度不超过2048字节

回复音乐消息

 <xml>
 <ToUserName><![CDATA[toUser]]></ToUserName>
 <FromUserName><![CDATA[fromUser]]></FromUserName>
 <CreateTime>12345678</CreateTime>
 <MsgType><![CDATA[music]]></MsgType>
 <Music>
 <Title><![CDATA[TITLE]]></Title>
 <Description><![CDATA[DESCRIPTION]]></Description>
 <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl>
 <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl>
 </Music>
 </xml>
Copier après la connexion
参数描述
ToUserName接收方帐号(收到的OpenID)
FromUserName开发者微信号
CreateTime消息创建时间
MsgTypemusic
MusicUrl音乐链接
HQMusicUrl高质量音乐链接,WIFI环境优先使用该链接播放音乐

回复图文消息

 <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>
Copier après la connexion
参数 描述
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端口

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

三、消息类图

 Principes de base du développement de la plateforme publique WeChat et de la réception des messages


更多Principes de base du développement de la plateforme publique WeChat et de la réception des messages相关文章请关注PHP中文网!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal