Avant de commencer, 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 :
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.
Adresse d'enregistrement : http://mp.weixin.qq.com/
1. ) Vous devez d'abord vous inscrire par email :
2) Activation par email. Vous recevrez un email d'activation dans votre boîte mail, cliquez simplement sur le lien d'activation.
3) Les informations personnelles doivent être enregistrées. Ici, vous devez fournir des informations personnelles ou des informations organisationnelles.
Désormais, les particuliers ne sont autorisés qu'à enregistrer des comptes d'abonnement, et les entreprises peuvent enregistrer des comptes de service. Les comptes de service ont plus de fonctions que les comptes d'abonnement et peuvent mettre en œuvre des menus personnalisés.
Les informations à fournir comprennent principalement le numéro d'identification et la photo de la personne détentrice de la carte d'identité, s'il s'agit d'un enregistrement d'entreprise, le numéro d'enregistrement de l'entreprise, la licence commerciale et la carte d'identité de personne morale et sa photo. sont également nécessaires. Je pense que c'est un peu anormal. Quel patron est prêt à vous laisser prendre une photo avec lui et sa carte d'identité ?
Remarque :
Seuls deux comptes de plateforme publique WeChat peuvent être enregistrés avec le même numéro de téléphone mobile ou le même numéro d'identification.
Enregistrement des informations personnelles :
Utilisateurs d'entreprise
Les informations personnelles ci-dessus pour les utilisateurs d'entreprise doivent également être renseignées, seules celles de l'opérateur informations personnelles.
Médias gouvernementaux
4) Saisissez les informations relatives au compte public.
Lors de la saisie du nom et de la description du compte officiel, veuillez noter que le nom du compte officiel ne peut pas être modifié. Une fois soumis, il ne peut pas être modifié, alors soyez prudent.
L'inscription doit être examinée dans les 7 jours. Les étapes spécifiques d’inscription ne seront pas décrites ici.
Si l'examen est réussi, vous pouvez passer à l'étape suivante. Comment lier nos services aux comptes publics ?
Téléchargez principalement un avatar, vous pouvez également modifier les informations de description. Attention cependant, vous ne pouvez le modifier qu’une fois par mois. Par conséquent, lors de la création d’une nouvelle demande, vous devez attendre que les exigences aient été déterminées et que l’UE ait conçu l’icône avant de la traiter.
En cas de modification, vous ne pouvez attendre qu'un mois.
3. Devenez développeur :
Désactivez d'abord le mode édition et activez le mode développement
Ici, nous pouvons réellement lier notre propre serveur.
Liez l'adresse du service et le jeton. L'adresse du serveur doit être une IP publique et son port doit être 80
La valeur du jeton doit être aussi complexe que possible. Une fois piratée, elle est susceptible d'être utilisée par d'autres.
Parce que, lors du premier accès au serveur, une vérification d'identité est requise, et un token est requis. Et une fois vérifié avec succès, il ne le sera plus à l’avenir.
L'interface de messages de la plateforme publique offre aux développeurs une nouvelle façon de traiter les messages.
Cliquez sur Appliquer et remplissez l'URL et le jeton. Le jeton peut être renseigné par le développeur pour générer un. signature.
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对比,标识该请求来源于微信
Lorsqu'un utilisateur WeChat ordinaire envoie un message à un compte public, le serveur WeChat POSTera le message à l'URL renseignée. La structure est la suivante :
<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>
参数 | 描述 |
---|---|
ToUserName | 开发者微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | text |
Content | 文本消息内容 |
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>
参数 | 描述 |
---|---|
ToUserName | 开发者微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | image |
PicUrl | 图片链接 |
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>
参数 | 描述 |
---|---|
ToUserName | 开发者微信号 |
FromUserName | 发送方帐号(一个OpenID) |
CreateTime | 消息创建时间 (整型) |
MsgType | location |
Location_X | 地理位置纬度 |
Location_Y | 地理位置经度 |
Scale | 地图缩放大小 |
Label | 地理位置信息 |
MsgId | 消息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 | 消息创建时间 |
MsgType | text |
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 | 消息创建时间 |
MsgType | music |
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 | 点击图文消息跳转链接 |
1.用户OpenID对一个公众号是固定唯一的串
2.请使用80端口
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!