Maison >Applet WeChat >Développement WeChat >Traitement des messages utilisateur de la série de développement Force.com WeChat
Force.com est une société de plateforme cloud de renommée internationale. Après avoir configuré avec succès Force.com comme serveur pour les comptes publics WeChat, la prochaine tâche requise consiste à traiter les messages envoyés par les utilisateurs. Lorsqu'un utilisateur ordinaire de WeChat envoie un message à un compte public, le serveur WeChat POSTera le paquet de données XML du message à l'URL renseignée par le développeur. Habituellement, les types de messages incluent des informations textuelles, des informations d'image, des informations vocales et des informations vidéo. , informations de localisation géographique et informations sur les liens. Pour la structure détaillée du paquet de données XML de chaque message, veuillez consulter http://mp.weixin.qq.com/wiki/index.php?title=Receive ordinaire messages. L'article présente le traitement des messages texte. Le format et la description du paquet XML du message texte sont les suivants :
Exemple de paquet XML de message texte
1348831860 1234567890123456
Description de la structure du paquet de données
Envoyer des données via les journaux de débogage surveillant l'utilisation
Dans Force.com, vous pouvez facilement observer les informations de données XML envoyées par les utilisateurs de WeChat. À cette fin, entrez dans Force.com. Page de configuration en arrière-plan Recherchez les journaux de débogage sous Journaux dans la barre de navigation de gauche. Après avoir cliqué pour entrer, cliquez sur le bouton Nouveau à côté de Utilisateurs surveillés sur la droite, comme indiqué ci-dessous :
. Dans l'écran suivant, vous pourrez choisir quel utilisateur vous souhaitez surveiller l'interaction avec le serveur Force.com. Dans l'écran de recherche, vous pouvez cliquer sur la loupe pour trouver tous les utilisateurs que Site.com utilise de manière anonyme. compte similaire à "Utilisateur invité du site...". Sélectionnez L'interface terminée est la suivante :
À ce stade, si un utilisateur WeChat qui suit ce compte public WeChat envoie n'importe quel texte sur ce compte, actualisez la page de surveillance des journaux de débogage et vous pourrez voir que le journal correspondant a été ajouté ci-dessous :
Cliquez dedans et vous pourrez voir le XML paquet du texte que nous avons envoyé dans le journal :
Ce type de journal peut également aider au débogage ultérieur.
Créer une méthode de traitement des messages utilisateur
Ensuite, nous ouvrons la classe WeChatRestController créée précédemment et ajoutons la méthode suivante pour répondre au paquet de données utilisateur
@HttpPost global static void doPost(){ //存储XML各节点数据变量 String toUserName = ''; String fromUserName = ''; String msgType = ''; String content = ''; //获取XML数据包 RestRequest req = RestContext.request; RestResponse res = RestContext.response; string strMsg = req.requestBody.toString(); XmlStreamReader reader = new XmlStreamReader(strMsg); //解析XML数据包,Force.com这块的处理能力并不强,简单的结构也需要较多代码来解析 while(reader.hasNext()){ if(reader.getLocalName() == 'ToUserName'){ reader.next(); if(String.isNotBlank(reader.getText())){ toUserName = reader.getText(); } } else if(reader.getLocalName() == 'FromUserName'){ reader.next(); if(String.isNotBlank(reader.getText())){ fromUserName = reader.getText(); } } else if(reader.getLocalName() == 'MsgType'){ reader.next(); if(String.isNotBlank(reader.getText())){ msgType = reader.getText(); } } else if(reader.getLocalName() == 'Content'){ reader.next(); if(String.isNotBlank(reader.getText())){ content = reader.getText(); } } reader.next(); } }
Le code ci-dessus a terminé l'analyse du package XML de données envoyé par l'utilisateur. Ensuite, nous suivons http://mp.weixin.qq.com/wiki/index.php?title=sending instructions de message de réponse passive et organisons. la réponse aux données du message texte de l'utilisateur, les données de réponse ici sont également une structure XML, qui est fondamentalement la même que la structure de données XML du message texte envoyé. Pour plus de détails, veuillez vous référer à l'introduction détaillée de Tencent dans le lien. Le code suivant enverra automatiquement la date et l'heure actuelles à l'utilisateur. Ajoutez le code suivant après la boucle While du code précédent :
Datetime dt = System.now(); String returnDT = dt.format('EEEE, MMMM d, yyyy'); String replyMSG = '<xml><ToUserName><![CDATA[{0}]]></ToUserName><FromUserName><![CDATA[{1}]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[{2}]]></Content></xml>'; String[] arguments = new String[]{fromUserName, toUserName, rtnMsg}; String formattedReplyMSG = String.format(replyMSG, arguments); RestContext.response.addHeader('Content-Type', 'text/plain'); RestContext.response.responseBody = Blob.valueOf(rtnMsg);
Ce qu'il faut rappeler légèrement du code précédent est le ToUserName. paramètre et paramètre FromUserName à la ligne 3. C'est l'opposé du message paquet de données XML envoyé par les utilisateurs ordinaires de WeChat.
Enregistrez le code. À ce stade, les utilisateurs ordinaires qui envoient un message à ce compte public peuvent recevoir rapidement les informations sur l'heure actuelle.
Pour plus d'articles liés au traitement des messages utilisateur de la série de développement Force.com WeChat, veuillez faire attention au site Web PHP chinois !