Maison >développement back-end >Problème PHP >Comment implémenter une communication textuelle simple WeChat en php

Comment implémenter une communication textuelle simple WeChat en php

PHPz
PHPzoriginal
2023-04-18 10:19:06591parcourir

Avec la popularité de WeChat, de plus en plus d'applications doivent utiliser l'interface ouverte de WeChat pour développer une logique métier. Cet article explique comment utiliser PHP pour implémenter une simple fonction de communication textuelle WeChat.

1. Préparation

  1. Enregistrez un compte développeur et créez une application

Avant d'accéder à la page de développement de la plateforme publique WeChat, vous devez disposer d'un compte WeChat et d'un compte officiel certifié. Après avoir créé un compte public, vous devez vous rendre sur la page « Développement-Configuration de base » pour obtenir l'AppID et l'AppSecret du compte public, et en même temps définir l'URL et le jeton du mode développeur dans « Configuration du serveur ».

  1. Installez les bibliothèques PHP nécessaires

L'utilisation de PHP pour implémenter la communication WeChat nécessite l'installation de la bibliothèque d'extensions curl et de la bibliothèque d'extensions simplexml de PHP. Sous les systèmes Linux, utilisez la commande sudo apt-get install php-curl php-simplexml pour installer.

  1. Créer un environnement de développement

Utilisez n'importe quel éditeur de code pour créer un environnement de développement. Il est recommandé d'utiliser PHPStorm ou Sublime Text. Les URL et jetons utilisés dans le code doivent correspondre à la configuration du compte officiel WeChat.

2. Obtenez les messages texte envoyés par les utilisateurs de WeChat

L'URL et le jeton doivent être configurés dans la "Configuration du serveur" du compte officiel WeChat. L'URL pointe vers le programme de traitement des messages php que nous avons écrit, et le jeton est l'authentification. correspondant à l'URL.

Le processus d'acceptation et de traitement des messages texte est le suivant :

  1. Vérifiez que le message provient bien du serveur WeChat

Lorsque l'utilisateur envoie un message au compte officiel, le serveur WeChat enverra le message au URL que vous avez renseignée au préalable. Si l'option "Recevoir les messages et imprimer le XML avant le cryptage des messages" est activée dans "Configuration du serveur", le fichier XML sera immédiatement imprimé sur la page. Le code suivant est une fonction utilisée pour vérifier si le message provient du serveur WeChat.

define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (!isset($_GET['echostr'])) {
$wechatObj->responseMsg();
} else {
$wechatObj->valid();
}
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET["echostr"];
if ($this->checkSignature()) {
echo $echoStr;
exit;
}
}
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if ($tmpStr == $signature) {
return true;
} else {
return false;
}
}
}

La logique du code ci-dessus est très simple. Lorsque nous accédons à ce gestionnaire php, si nous accédons à l'url avec le paramètre echostr, la fonction valid() sera exécutée. Dans cette fonction, on juge si la valeur de signature est légale, et si elle est légale, la valeur de echostr est renvoyée. Si l'URL consultée n'a pas de paramètre echostr, alors la fonction ResponseMsg() est exécutée directement.

  1. Répondre à un message texte

Répondre à un message texte nécessite de configurer l'URL et le jeton dans la "Configuration du serveur" du compte officiel WeChat. L'URL pointe vers le gestionnaire php que nous avons écrit, et le jeton est l'authentification. correspondant à l'URL.

private function receiveText($postObj)
{
$content = "欢迎您关注XX公司官方微信公众号,我们会竭诚为您服务!";
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$time = time();
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>0</FuncFlag>
</xml>";
$msgType = "text";
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $content);
echo $resultStr;
}

La fonction recevoirText dans le code ci-dessus peut recevoir des messages texte envoyés par les utilisateurs et répondre avec un texte de bienvenue fixe. Vous pouvez modifier le contenu du texte de la réponse en fonction des besoins de votre entreprise.

3. Résumé

Cet article présente brièvement comment utiliser PHP pour implémenter la fonction de communication textuelle WeChat, c'est-à-dire comment répondre aux messages texte envoyés par les utilisateurs. Dans les applications réelles, vous pouvez développer et personnaliser une logique métier plus complexe en fonction des besoins de l'entreprise. Une implémentation complète de la logique métier du compte public WeChat comprend des menus, des messages de réponse et des événements, ce qui nécessite l'utilisation complète de PHP, MySQL et d'autres technologies.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn