WeChat 공개 플랫폼 개발 및 메시지 수신의 기본 원칙

高洛峰
풀어 주다: 2017-03-06 09:19:37
원래의
2124명이 탐색했습니다.

1. 기본 원칙

시작하기 전에는 관심이 많겠지만 당황스러울 수도 있습니다. 복잡합니까? 배우기가 어렵나요?

사실 그 반대인데 아주 간단해요. 모든 분들의 우려를 불식시키기 위해 먼저 위챗 공개 플랫폼의 기본 원칙을 간략하게 소개하겠습니다.

WeChat 서버는 전달 서버와 동일합니다. 단말기(휴대폰, 패드 등)가 WeChat 서버에 요청을 시작하고 WeChat 서버가 해당 요청을 맞춤형 서비스에 전달합니다. 우리의 구체적인 구현).

서비스가 처리된 후 WeChat 서버로 증발되고, WeChat 서버는 단말기에 특정 응답으로 응답합니다.

통신 프로토콜은 HTTP

데이터 형식은 XML

구체적인 프로세스는 아래 그림과 같습니다.

WeChat 공개 플랫폼 개발 및 메시지 수신의 기본 원칙

사실 우리가 해야 할 일은 HTTP 요청에 응답하는 것입니다.

특정 요청 내용을 특정 XML 형식에 따라 구문 분석한 후 특정 XML 형식에 따라 반환합니다.

HttpHandler의 간단한 구현만 필요합니다.

물론 WeChat 플랫폼은 더 복잡한 비즈니스도 구현할 수 있습니다. 예를 들어 WeChat을 임베디드 브라우저로 사용할 수 있으며 WeChat 링크를 통해 htm 인터페이스를 열고 자체 로직을 구현할 수 있습니다.

2. 메시지 인터페이스(공식 문서)

메시지 인터페이스 신청

클릭 적용하고 URL과 토큰을 입력하세요. 토큰은 개발자가 서명을 생성하기 위해 입력할 수 있습니다.

웹사이트 액세스

공개 플랫폼 사용자가 정보를 제출한 후 WeChat 서버는 4개의 매개변수와 함께 채워진 URL에 GET 요청을 보냅니다.

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

개발자는 서명을 확인하여 요청을 확인합니다(확인 방법은 아래에 나열되어 있음). 해당 GET 요청이 WeChat 서버에서 오는 것으로 확인되면 echostr 매개변수 내용을 그대로 반환해 주셔야 접속이 적용되고, 그렇지 않으면 접속이 실패됩니다.

서명은 개발자가 입력한 토큰 매개변수와 요청의 타임스탬프 매개변수 및 nonce 매개변수를 결합합니다.

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

메시지 푸시

일반 WeChat 사용자가 공개 계정에 메시지를 보내면 WeChat 서버는 해당 메시지를 채워진 계정에 게시합니다. - URL에서. 구조는 다음과 같습니다.

문자 메시지

 <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>
로그인 후 복사
< tr> < /tr>
매개변수< /th>설명
ToUserName
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypetext
Content文本消息内容
MsgId消息id,64位整型
개발자

WeChat ID

FromUserName발신자 계정(OpenID)
CreateTime메시지 생성 시간(정수)
MsgType텍스트
콘텐츠문자 메시지 콘텐츠
MsgId메시지 ID, 64비트 정수
사진 메시지
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypeimage
PicUrl图片链接
MsgId消息id,64位整型
 <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>
로그인 후 복사
< tr>
매개변수설명
ToUserName

개발자WeChat ID

FromUserName발신자 계정(OpenID 1개)
CreateTime메시지 생성 시간(정수)
MsgType 이미지
PicUrl사진 링크
MsgId 메시지 ID, 64비트 정수
위치정보 메시지
参数描述
ToUserName开发者微信号
FromUserName发送方帐号(一个OpenID)
CreateTime消息创建时间 (整型)
MsgTypelocation
Location_X地理位置纬度
Location_Y地理位置经度
Scale地图缩放大小
Label地理位置信息
MsgId消息id,64位整型
<🎜>
<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>
로그인 후 복사
< td>메시지 생성 시간(정수)< td>Location_X< td>규모< td>MsgId
매개변수설명
ToUserName<🎜> 개발자 <🎜> WeChat ID
FromUserName발신자 계정(OpenID)
CreateTime
MsgTypelocation
위치 위도
Location_Y위치 경도
지도 확대/축소 크기
라벨지리적 위치 정보
메시지 ID, 64비트 정수

链接消息

<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>
로그인 후 복사
参数描述
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>
로그인 후 복사
参数描述
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>
로그인 후 복사
参数描述
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>
로그인 후 복사
参数描述
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>
로그인 후 복사
参数 描述
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端口

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

三、消息类图

 WeChat 공개 플랫폼 개발 및 메시지 수신의 기본 원칙


更多WeChat 공개 플랫폼 개발 및 메시지 수신의 기본 원칙相关文章请关注PHP中文网!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!