Maison  >  Article  >  développement back-end  >  Tutoriel de base PHP Développement de la plateforme publique WeChat

Tutoriel de base PHP Développement de la plateforme publique WeChat

巴扎黑
巴扎黑original
2017-08-17 09:06:591366parcourir


Résumé : L'interface fournie par la plateforme publique WeChat est très simple. Examinons d'abord le processus d'interaction des messages : pour le dire plus simplement, les utilisateurs utilisent. WeChat pour envoyer des messages - WeChat transfère les données Envoyer au développeur - Le développeur traite le message et renvoie les données à WeChat - WeChat envoie les données renvoyées à l'utilisateur, au cours desquelles l'interaction des données est effectuée via XML, c'est tout...

Plateforme publique WeChat L'interface fournie est très simple. Jetons d'abord un coup d'œil au processus d'interaction des messages :

Tutoriel de base PHP Développement de la plateforme publique WeChat

Pour mettre. plus simplement, les utilisateurs utilisent WeChat pour envoyer des messages -> WeChat envoie des données aux développeurs Auteur-> Le développeur traite le message et renvoie les données à WeChat-> complété via XML C'est aussi simple que cela.

Écrivez un exemple ci-dessous pour développer un chatbot intelligent WeChat :

  1. Enregistrez un compte sur la plateforme publique WeChat
    Plateforme publique WeChat :
    https://mp.weixin.qq.com/
    Remarque : actuellement, seuls deux comptes peuvent être enregistrés avec une seule carte d'identité. Le nom du compte est lié à l'authentification V-added, veuillez donc vous inscrire soigneusement.

  2. Demander un serveur/hôte virtuel
    Les chaussures pour enfants sans serveur/hôte virtuel peuvent utiliser BAE et SAE, plus d'introduction.

  3. Activer le mode développeur
    La plateforme publique WeChat a deux modes, l'un est le mode édition (mode imbécile), qui est simple mais a une seule fonction. L'autre est le mode développeur, qui peut implémenter des fonctions complexes via le développement. Les deux modes s'excluent mutuellement. Évidemment, connectez-vous à la plateforme publique WeChat et activez le mode développeur via le menu « Fonctions avancées ».

  4. Remplissez les informations de configuration de l'interface
    Elle est également configurée dans le menu "Fonctions avancées" Deux paramètres sont à configurer :
    URL : Adresse d'accès à l'application développeur, actuellement uniquement pris en charge le port 80, prenez "http://www.YoonPer.com/weixin/index.php" comme exemple.
    TOKEN : Remplissez ce que vous souhaitez pour générer une signature, prenez "YoonPer" comme exemple.
    Après avoir rempli, enregistrez le code suivant sous index.php et téléchargez-le dans le répertoire http://www.YoonPer.com/weixin/, puis cliquez sur "Soumettre" pour terminer la vérification.

define("TOKEN", "YoonPer"); //TOKEN值
$wechatObj = new wechat();
$wechatObj->valid();
class wechat {
  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;
    }
  }
}
?>

En fait, c'est la plateforme publique WeChat qui vérifie si l'URL est correctement accédée. Il n'y a aucune signification substantielle à l'étude du code. Le fichier peut être supprimé après vérification. . Je ne l'expliquerai pas en détail. Si vous êtes intéressé par les chaussures pour enfants, vous pouvez consulter la documentation officielle.
Document API de la plateforme publique WeChat : http://mp.weixin.qq.com/wiki/index.php

  1. Développement des fonctions de la plateforme publique WeChat
    OK, mentionné ci-dessus Ici, l'interaction des données entre la plate-forme publique WeChat et les développeurs se fait via XML, puisque XML est utilisé, il doit bien sûr suivre les spécifications, donc avant de commencer le développement, jetez un œil aux spécifications XML fournies par le document d'interface officiel, en prenant. messages texte à titre d'exemple. :

Lorsqu'un utilisateur envoie un message à un compte public WeChat, le serveur WeChat POSTera certaines données au développeur :

<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><MsgId>1234567890123456MsgId>xml>

Le développeur doit le faire après avoir traité le message. Renvoyez les données au serveur WeChat :

<xml><ToUserName>ToUserName><FromUserName>FromUserName><CreateTime>12345678CreateTime><MsgType><![CDATA1]>MsgType><Content>Content><FuncFlag>0FuncFlag>xml>

En plus des messages texte, la plate-forme publique WeChat permet également aux utilisateurs d'envoyer des messages photo, des messages de localisation, des messages de lien. , et les notifications d'événements, et les développeurs peuvent également répondre à la plate-forme publique WeChat. Des messages musicaux, des messages graphiques et diverses spécifications XML de messages peuvent également être trouvés dans les documents officiels.

Jetons un coup d'œil à un exemple PHP officiel. J'ai fait quelques simplifications :

responseMsg();
class wechat {
 public function responseMsg() {
  //---------- 接 收 数 据 ---------- //
  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取POST数据
  //用SimpleXML解析POST过来的XML数据
  $postObj = simplexml_load_string($postStr,&#39;SimpleXMLElement&#39;,LIBXML_NOCDATA);
  $fromUsername = $postObj->FromUserName; //获取发送方帐号(OpenID)
  $toUsername = $postObj->ToUserName; //获取接收方账号
  $keyword = trim($postObj->Content); //获取消息内容
  $time = time(); //获取当前时间戳
  //---------- 返 回 数 据 ---------- //
  //返回消息模板
  $textTpl = "%s0";
  $msgType = "text"; //消息类型
  include(&#39;simsimi.php&#39;);
  $contentStr = simsimi($keyword); //返回消息内容
  //格式化消息模板
  $resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr);
  echo $resultStr; //输出结果
 }
}
?>

Enregistrez le code sous index.php et téléchargez-le sur http://www.YoonPer.com. /weixin/, si le fichier n'a pas été supprimé tout à l'heure, il sera directement écrasé.

Désormais, les utilisateurs envoient n'importe quel message via la plateforme publique WeChat et le compte public renverra un message avec le contenu "http://www.YoonPer.com".
La prochaine chose que vous devez faire est de renvoyer dynamiquement les résultats en fonction des messages des utilisateurs ~

SimSimi (Little Yellow Chicken) est actuellement un robot de discussion populaire. J'ai développé un SimSimi (Little Yellow Chicken) gratuit en utilisant. Interface CURL, la transmission de mots-clés renverra une réponse textuelle. Cette partie n'est pas le sujet de cet article, je ne l'expliquerai donc pas davantage. Allez simplement au code :

/*-------------------------------------------------
|   simsimi.php [ 智能聊天(simsimi) ]
+--------------------------------------------------
|   Author: LimYoonPer
+------------------------------------------------*/

function simsimi ($keyword)
{
  $keyword = urlencode($keyword);
  //----------- 获取COOKIE ----------//
  $url = "http://www.simsimi.com/";
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  $content = curl_exec($ch);
  list($header, $body) = explode("\r\n\r\n", $content);
  preg_match_all("/set\-cookie:([^\r\n]*);/iU", $header, $matches);
  $cookie = implode(&#39;;&#39;, $matches[1]).";simsimi_uid=1;";
  curl_close($ch);
  //----------- 抓 取 回 复 ----------//
  $url = "http://www.simsimi.com/func/reqN?lc=ch&ft=0.0&req=$keyword&fl=http%3A%2F%2Fwww.simsimi.com%2Ftalk.htm";
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_COOKIE, $cookie);
  $content = json_decode(curl_exec($ch), 1);
  curl_close($ch);
  if ( $content[&#39;result&#39;] == &#39;200&#39; ) {
    return $content[&#39;sentence_resp&#39;];
  } else {
    return &#39;我还不会回答这个问题...&#39;;
  }
}
?>

Intégrez les deux ci-dessus. des morceaux de code et vous avez terminé. Une chose doit être expliquée. , le serveur WeChat se déconnectera s'il ne reçoit pas de réponse dans les 5 secondes. Il peut expirer via cette interface et SimSimi a bloqué les demandes d'exploration sur BAE et SAE. . Il est recommandé d'utiliser l'API payante officielle de SimSimi, qui est plus rapide ~

.

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