Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der benutzerdefinierten Antwortfunktion von WeChat in der PHP-Version

Detaillierte Erläuterung der benutzerdefinierten Antwortfunktion von WeChat in der PHP-Version

墨辰丷
墨辰丷Original
2018-05-29 17:42:001664Durchsuche

In diesem Artikel wird hauptsächlich die benutzerdefinierte Antwortfunktion der PHP-Version von WeChat vorgestellt und die Einstellungen und Code-Implementierungsfähigkeiten der PHP-Version der benutzerdefinierten WeChat-Antwortfunktion in Form eines vollständigen Beispiels analysiert

für Details wie folgt:

Nach der Konfiguration des Servers können Sie PHP verwenden, um eine automatische Antwort zu implementieren.

Code in index.php

<?php
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET[&#39;echostr&#39;])) {
  $wechatObj->valid();
}else{
  $wechatObj->responseMsg();
}
class wechatCallbackapiTest
{
  public function valid()
  {
    $echoStr = $_GET["echostr"];
    if($this->checkSignature()){
      header(&#39;content-type:text&#39;);
      echo $echoStr;
      exit;
    }
  }
  private function checkSignature()
  {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );
    if( $tmpStr == $signature ){
      return true;
    }else{
      return false;
    }
  }
  public function responseMsg()
  {
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    if (!empty($postStr)){
      $postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, LIBXML_NOCDATA); //获取数据
      $fromUsername = $postObj->FromUserName;
      $toUsername = $postObj->ToUserName;
      $keyword = trim($postObj->Content);
      $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>";
      if($keyword == "?" || $keyword == "?") //获取用户信息
      {
        $msgType = "text";
        $contentStr = date("Y-m-d H:i:s",time()); // 回复的内容
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;
      }
    }else{
      echo "";
      exit;
    }
  }
}
?>

Wirkung:

Wenn der Benutzer eingibt? Oder? erhalten Sie die aktuelle Uhrzeit

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

PHP Einführung in MySQL (datenbankbezogenes Wissen)

PHP MySQL-Betrieb und Methode zum Lesen von Daten

PHP So senden Sie E-Mails

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der benutzerdefinierten Antwortfunktion von WeChat in der PHP-Version. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn