L'API du programme WeChat Mini reçoit des messages et des événements


Recevoir des messages et des événements


Utilisez <contact-button/> sur la page pour afficher le bouton permettant d'accéder à la session du service client.

Lorsqu'un utilisateur envoie un message dans une session de service client (ou envoie des événements provoqués par certaines opérations utilisateur spécifiques), le serveur WeChat POSTera le paquet de message (ou d'événement) (format JSON ou XML) à l'URL renseignée par l'utilisateur. développeur. Après avoir reçu la demande, le développeur peut utiliser l'interface de message du service client pour répondre de manière asynchrone.

Une fois que le serveur WeChat a envoyé le message de l'utilisateur à l'adresse du serveur de développement du mini-programme (configurée dans les paramètres de développement), si le serveur WeChat ne reçoit pas de réponse dans les cinq secondes, il se déconnectera et relancera la demande, en réessayant trois fois. fois au total, si pendant le débogage, vous constatez que l'utilisateur ne peut pas recevoir le message de réponse, vous pouvez vérifier si le traitement du message expire. Concernant la nouvelle tentative de déduplication des messages, il est recommandé d'utiliser msgid pour dédupliquer les messages avec msgid. Il est recommandé d'utiliser FromUserName + CreateTime pour les messages de type événement afin d'éliminer la duplication.

Si le serveur reçoit la demande et qu'elle #n'a pas besoin d'être transmise à l'outil du service client#, il doit faire la réponse suivante, afin que le serveur WeChat n'en fasse rien et ne lance pas de nouvelle tentative. , un message d'erreur sérieux apparaîtra. Veuillez consulter les instructions ci-dessous pour plus de détails :

1、直接回复success(推荐方式)
2、直接回复空串(指字节长度为0的空字符串,而不是结构体中content字段的内容为空)

Une fois que la situation suivante se produit, WeChat enverra une invite système à l'utilisateur lors de la session du mini-programme "Le service client de ce mini-programme est temporairement incapable de fournir des services, veuillez réessayer plus tard" :

1、开发者在5秒内未回复任何内容
2、开发者回复了异常数据

Si développé Si vous souhaitez transférer des messages ou des événements vers les outils du service client, veuillez vous référer à Transfert de messages vers les outils du service client. Veuillez vous référer aux instructions de l'outil de service client pour accéder à l'outil de service client

Si les développeurs souhaitent améliorer la sécurité, ils peuvent activer le cryptage des messages dans le centre de développement, de cette manière, les messages envoyés par les utilisateurs au mini-programme et les réponses passives à. les messages des utilisateurs par le mini-programme continueront d'être cryptés. Voir les instructions de cryptage et de déchiffrement des messages pour plus de détails.

Les structures de paquets de données push JSON et XML de chaque type de message sont les suivantes.

Message texte

Lorsque l'utilisateur envoie un message texte lors de la session du service client, le paquet de données suivant sera généré :

Format XML

<xml>
   <ToUserName><![CDATA[toUser]]></ToUserName>
   <FromUserName><![CDATA[fromUser]]></FromUserName>
   <CreateTime>1482048670</CreateTime>
   <MsgType><![CDATA[text]]></MsgType>
   <Content><![CDATA[this is a test]]></Content>
   <MsgId>1234567890123456</MsgId>
</xml>

Format JSON

{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "text",
    "Content": "this is a test",
    "MsgId": 1234567890123456
}

Description du paramètre

201609261355055576.pngQQ截图20170208152517.png

Message photo

Utilisateur dans la session du service client Lors de l'envoi d'un message photo, le paquet de données suivant sera généré :

Format XML

<xml>
      <ToUserName><![CDATA[toUser]]></ToUserName>
      <FromUserName><![CDATA[fromUser]]></FromUserName>
      <CreateTime>1482048670</CreateTime>
      <MsgType><![CDATA[image]]></MsgType>
      <PicUrl><![CDATA[this is a url]]></PicUrl>
      <MediaId><![CDATA[media_id]]></MediaId>
      <MsgId>1234567890123456</MsgId>
</xml>

Format JSON

{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "image",
    "PicUrl": "this is a url",
    "MediaId": "media_id",
    "MsgId": 1234567890123456
}

Description du paramètre

QQ截图20170208152543.png

Entrer l'événement de session

Lorsque l'utilisateur entre le session de service client via le mini programme "Bouton de session de service client", les éléments suivants seront générés. Paquet de données :

Format XML

<xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>  
    <FromUserName><![CDATA[fromUser]]></FromUserName>  
    <CreateTime>1482048670</CreateTime>  
    <MsgType><![CDATA[event]]></MsgType>  
    <Event><![CDATA[user_enter_tempsession]]></Event>  
    <SessionFrom><![CDATA[sessionFrom]]></SessionFrom> 
</xml>

Format JSON

{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "event",
    "Event": "user_enter_tempsession",
    "SessionFrom": "sessionFrom"
}

Description du paramètre

QQ截图20170208152556.png

Transférer le message à l'outil du service client

Si le développeur souhaite que le message soit transmis à l'outil du service client pour traitement, veuillez renvoyer le package de réponse selon la structure suivante. Le format de données (XML ou JSON) du paquet de réponse doit être cohérent avec le format de données défini pour le message reçu.

Format XML
<xml>
    <ToUserName><![CDATA[toUser]]></ToUserName>
    <FromUserName><![CDATA[fromUser]]></FromUserName>
    <CreateTime>1482048670</CreateTime>
    <MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>
Format JSON
{
    "ToUserName": "toUser",
    "FromUserName": "fromUser",
    "CreateTime": 1482048670,
    "MsgType": "transfer_customer_service",
}
Description du paramètre

QQ截图20170208152611.png