Maison  >  Article  >  Applet WeChat  >  Introduction à la réponse automatique par texte dans le développement PHP WeChat

Introduction à la réponse automatique par texte dans le développement PHP WeChat

高洛峰
高洛峰original
2017-03-13 14:04:151478parcourir

Cet article présente des informations pertinentes sur la réponse automatique par texte dans le développement PHP WeChat. Les amis intéressés peuvent s'y référer

Tout d'abord, rendez-vous sur la plateforme publique WeChat pour créer un compte (il y a pas mal de choses). à remplir pour l'inscription) (plus), après votre inscription, connectez-vous. Vous pouvez voir le "Centre de développement" sur la gauche. Il semble que vous deviez compléter certaines informations avant d'ouvrir le Centre de développement. Suivez simplement les étapes pour le compléter. Après être entré dans le centre de développement, allez d'abord dans modifier

Introduction à la réponse automatique par texte dans le développement PHP WeChat

pour modifier la configuration. Lors de la modification de la configuration, faites attention à :

Introduction à la réponse automatique par texte dans le développement PHP WeChat

URL est un script PHP sous votre propre nom de domaine (lire ci-dessous pour une démo du script). Ce script est utilisé pour s'interfacer avec l'interface WeChat. Par exemple,

http://www.example.com/weixin.php

Le jeton est une

constante définie dans le script ci-dessus, par exemple, définie dans votre Script PHP Maintenant :

define("TOKEN", "my_weixin");

Ensuite, lorsque vous remplissez le Token, vous remplissez abcdefgh

EncodingAESKey est utilisé pour le cryptage des messages. Vous pouvez écrire vous-même une combinaison de 43 chiffres de chiffres et de lettres, ou vous pouvez choisir « généré aléatoirement ». Généralement, la génération aléatoire suffit.


Après l'avoir rempli, enregistrez-le (s'il vous indique que la vérification du jeton a échoué lors de l'enregistrement, veuillez confirmer que le jeton est cohérent et cliquez plusieurs fois pour l'enregistrer).

Après avoir enregistré, cliquez sur "Ouvrir" à côté de la configuration modifiée.


Ensuite, vous pouvez modifier votre script PHP. (Si vous n'avez pas votre propre nom de domaine, vous pouvez utiliser le SAE gratuit de Sina Cloud, et il est préférable de procéder à une authentification par nom réel)

Le script de démonstration est le suivant : suivez la plateforme publique (par exemple, après le compte d'abonnement), la fonction est : entrez hehe et revenez bonjour tout le monde !!! Si vous entrez d'autres caractères, revenez à hehe et essayez.


header('content-type:text/html;charset=utf-8');

define("TOKEN", "my_weixin"); //define your token
$wx = new wechatCallbackapiTest();

if($_GET['echostr']){
 $wx->valid(); //如果发来了echostr则进行验证
}else{
 $wx->responseMsg(); //如果没有echostr,则返回消息
}


class wechatCallbackapiTest{

 public function valid(){ //valid signature , option

  $echoStr = $_GET["echostr"];
  if($this->checkSignature()){ //调用验证字段
   echo $echoStr;
   exit;
  }
 }

 public function responseMsg(){
  
 //get post data, May be due to the different environments
  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //接收微信发来的XML数据

  //extract post data
 if(!empty($postStr)){
    
   //解析post来的XML为一个对象$postObj
   $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
  
   $fromUsername = $postObj->FromUserName; //请求消息的用户
   $toUsername = $postObj->ToUserName; //"我"的公众号id
   $keyword = trim($postObj->Content); //消息内容
   $time = time(); //时间戳
   $msgtype = 'text'; //消息类型:文本
   $textTpl = "<xml>
  <ToUserName><![CDATA[%s]]></ToUserName>
  <FromUserName><![CDATA[%s]]></FromUserName>
  <CreateTime>%s</CreateTime>
  <MsgType><![CDATA[%s]]></MsgType>
  <Content><![CDATA[%s]]></Content>
  </xml>";

  if($keyword == &#39;hehe&#39;){
    $contentStr = &#39;hello world!!!&#39;;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();            
   }else{
    $contentStr = &#39;输入hehe试试&#39;;
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();
   }

  }else {
   echo "";
   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;
 }
 }
}
Si vous envoyez un message, le système vous invite : Cette plateforme publique est temporairement incapable de fournir des services, veuillez réessayer plus tard. Il y a alors probablement un problème avec la syntaxe du code. Vérifiez les

erreurs de grammaire et réessayez.

Pièce jointe :

Lorsqu'un nouvel utilisateur suit votre compte officiel, renvoie automatiquement les informations : (Ajoutez ce code pour déterminer $keyword Avant).

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