Grundprinzipien der Entwicklung der öffentlichen WeChat-Plattform und des Nachrichtenempfangs

高洛峰
Freigeben: 2017-03-06 09:19:37
Original
2125 Leute haben es durchsucht

1. Grundprinzipien

Bevor Sie damit beginnen, sind Sie vielleicht sehr daran interessiert, aber ratlos. Ist es kompliziert? Ist es schwer zu lernen?

Eigentlich ist es genau das Gegenteil, es ist ganz einfach. Um alle Bedenken auszuräumen, stelle ich zunächst kurz die Grundprinzipien der öffentlichen WeChat-Plattform vor.

Der WeChat-Server entspricht einem Weiterleitungsserver. Das Endgerät (Mobiltelefon, Pad usw.) initiiert eine Anfrage an den WeChat-Server und der WeChat-Server leitet die Anfrage dann an den benutzerdefinierten Dienst weiter (dies ist). unserer konkreten Umsetzung).

Nachdem der Dienst verarbeitet wurde, wird er auf den WeChat-Server verdampft und der WeChat-Server antwortet dann mit einer spezifischen Antwort an das Terminal.

Das Kommunikationsprotokoll ist: HTTP

Das Datenformat ist: XML

Der spezifische Prozess ist wie in der folgenden Abbildung dargestellt:

Grundprinzipien der Entwicklung der öffentlichen WeChat-Plattform und des Nachrichtenempfangs

Eigentlich müssen wir auf HTTP-Anfragen antworten.

Wir analysieren den spezifischen Anforderungsinhalt gemäß einem bestimmten XML-Format. Nach der Verarbeitung geben wir ihn auch gemäß einem bestimmten XML-Format zurück.

Wir benötigen nur eine einfache Implementierung von HttpHandler.

Natürlich kann die WeChat-Plattform auch komplexere Geschäfte implementieren. Beispielsweise kann WeChat als eingebetteter Browser verwendet werden. Wir können die HTM-Schnittstelle über den WeChat-Link öffnen und dann unsere eigene Logik implementieren.

2. Nachrichtenschnittstelle (offizielles Dokument)

Nachrichtenschnittstelle beantragen

Klicken Sie auf Anwenden, Geben Sie die URL und das Token ein. Das Token kann vom Entwickler ausgefüllt werden, um eine Signatur zu generieren.

Website-Zugriff

Nachdem der Benutzer der öffentlichen Plattform die Informationen übermittelt hat, sendet der WeChat-Server eine GET-Anfrage an die ausgefüllte URL mit vier Parametern:

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

Der Entwickler überprüft die Anfrage, indem er die Signatur überprüft (Überprüfungsmethoden sind unten aufgeführt). Wenn bestätigt wird, dass diese GET-Anfrage vom WeChat-Server stammt, geben Sie bitte den Inhalt des Echostr-Parameters unverändert zurück, dann wird der Zugriff wirksam, andernfalls schlägt der Zugriff fehl.

Signatur kombiniert den vom Entwickler eingegebenen Token-Parameter mit dem Zeitstempel-Parameter und dem Nonce-Parameter in der Anfrage.

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

Message Push

Wenn ein gewöhnlicher WeChat-Benutzer eine Nachricht an ein öffentliches Konto sendet, sendet der WeChat-Server die Nachricht an diesen die ausgefüllte URL oben. Der Aufbau ist wie folgt:

Textnachricht

 <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>
Nach dem Login kopieren
< tr>
ParameterBeschreibung
ToUserName
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypetext
Content文本消息内容
MsgId消息id,64位整型
Entwickler

WeChat-ID

FromUserNameAbsenderkonto (eine OpenID)
CreateTimeNachrichtenerstellungszeit (Ganzzahl)< /td>
MsgTypetext
ContentTextnachrichteninhalt
MsgIdNachrichten-ID, 64-Bit-Ganzzahl
Bildnachricht
 <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>
Nach dem Login kopieren
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypeimage
PicUrl图片链接
MsgId消息id,64位整型
< /tr>< td>Nachrichten-ID, 64-Bit-Ganzzahl
ParameterBeschreibung
ToUserName

DeveloperWeChat ID

FromUserNameSend Party Konto (eine OpenID)
CreateTimeNachrichtenerstellungszeit (Ganzzahl)
MsgType Bild
PicUrlBildlink
MsgId
Geolocation-Nachricht
<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>
Nach dem Login kopieren
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypelocation
Location_X地理位置纬度
Location_Y地理位置经度
Scale地图缩放大小
Label地理位置信息
MsgId消息id,64位整型
<🎜>< td>Standort_X
ParameterBeschreibung
ToUserName <🎜>Entwickler<🎜>WeChat-ID
FromUserNameAbsenderkonto (eine OpenID)
CreateTimeErstellungszeit der Nachricht (Ganzzahl)
MsgTypeStandort
Breitengrad des Standorts
Standort_YLängengrad des Standorts
MaßstabKartenzoomgröße
BeschriftungGeografische Standortinformationen
MsgIdNachrichten-ID, 64-Bit-Ganzzahl

链接消息

<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>
Nach dem Login kopieren
参数描述
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>
Nach dem Login kopieren
参数描述
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>
Nach dem Login kopieren
参数描述
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>
Nach dem Login kopieren
参数描述
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>
Nach dem Login kopieren
参数 描述
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端口

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

三、消息类图

 Grundprinzipien der Entwicklung der öffentlichen WeChat-Plattform und des Nachrichtenempfangs


更多Grundprinzipien der Entwicklung der öffentlichen WeChat-Plattform und des Nachrichtenempfangs相关文章请关注PHP中文网!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!