


Bei der automatischen Beantwortung von WeChat-Nachrichten sind in der PHP-WeChat-Entwicklung Probleme aufgetreten
Mar 21, 2017 pm 04:10 PMIn diesem Artikel geht es um die Fallstricke, auf die Sie bei der automatischen Beantwortung von WeChat-Nachrichten sto?en. Sie treten h?ufig in der t?glichen Projektentwicklung auf und sind von gro?em Referenzwert >WeChat-Antwortprinzip:
Wenn ein normaler WeChat-Benutzer eine Nachricht
an ein ?ffentliches Kontosendet, empf?ngt der WeChat-Server zuerst die vom Benutzer gesendete Nachricht und packt sie dann Benutzerinformationen und Nachrichten in ein Datenpaket im
XML-Format umwandeln und dieses XML-Datenpaket dann über die POST-Methode an die vom Entwickler festgelegte URL senden. Frage 1: Warum $GLOBALS["HTTP_RAW_POST_DATA"] verwenden, um POST-Daten anstelle des $_POST
ArraysPOST kann nur Standard-
Datentypenspeichern, für Inhalte wie XML, SOAP oder Application/Octet-steam. Analyse nicht m?glich . Und $GLOBALS["HTTP_RAW_POST_DATA"] ist dasselbe wie $_POST. Wenn PHP die POST-Daten erkennen kann, k?nnen Sie $GLOBALS["HTTP_RAW_POST_DATA"] verwenden, um sie zu empfangen.
Frage 2: Was sind die Parameter und Rückgabewerte von
simplexml_load_file()? Antwort:
Parameterbedeutung
string: XML string , der verarbeitet werden muss.
Klasse: wird verwendet, um ein neues -Objekt anzugeben, normalerweise auf ?SimpleXMLElement“ gesetzt, um eine Klasse einfacher XML-Elemente zu generieren. Optionen: Geben Sie zus?tzliche Libxml-Parameter an, die normalerweise auf die
-KonstanteLIBXML_NOCDATA gesetzt sind, was bedeutet, dass CDATA als Textknoten festgelegt wird. ns: generell weggelassen
is_prefix: generell weggelassen
Die Funktiongibt nach Abschluss ein Objekt der SimpleXMLElement-Klasse zurück. Funktion: Das offizielle Konto akzeptiert nur Textnachrichten und gibt entsprechende Textantworten aus.
Funktion: Der offizielle Account akzeptiert nur Bildnachrichten und gibt entsprechende Textantworten.<span style="font-family:Courier New;font-size:14px;"><?php define("TOKEN","weixin"); $weixinObj = new Wechat(); $weixinObj->valid();? class?Wechat{? public?function?valid(){? $echoStr?=?$_GET['echostr'];? //如果是第一次接入? if($this->checkSignature()?&&?$echoStr?){? echo?$echoStr;? exit;? }else{? $this->responseMsg();? }? }? //校驗(yàn)方法? 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;? }? }? /*?普通文本消息? <xml>? <ToUserName><![CDATA[toUser]]></ToUserName>? <FromUserName><![CDATA[fromUser]]></FromUserName>? <CreateTime>1348831860</CreateTime>? <MsgType><![CDATA[text]]></MsgType>? <Content><![CDATA[this is a test]]></Content>? </xml>? */? public?function?responseMsg(){? //獲取微信服務(wù)器POST請(qǐng)求中的數(shù)據(jù)? $postStr?=?$GLOBALS["HTTP_RAW_POST_DATA"];? if(?!empty($postStr)?){? $postObj?=?simplexml_load_string($postStr,?'SimpleXMLElement',?LIBXML_NOCDATA);? $fromUser?=?$postObj->FromUserName;? $toUser?=?$postObj->ToUserName;? $keyword?=?trim($postObj->Content);? $time?=?time();? $template?=?"<xml>? <ToUserName><![CDATA[%s]]></ToUserName>? <FromUserName><![CDATA[%s]]></FromUserName>? <CreateTime>%s</CreateTime>? <MsgType><![CDATA[%s]]></MsgType>? <Content><![CDATA[%s]]></Content>? </xml>";? if(?strtolower($postObj->MsgType)!='text'?){? $msgType?=?"text";? $content?=?"我只接受文本消息";? }else{? $msgType?=?"text";? if(?!empty($keyword)?){? $content?=?"您發(fā)送的消息是:".$postObj->Content;? }else{? $content?=?"請(qǐng)輸入關(guān)鍵字";//消息為空? }? }? $info?=?sprintf($template,?$fromUser,?$toUser,?$time,?$msgType,?$content);? echo?$info;? }else{? echo?"";? exit;? }? }? }</span>Das Obige ist das Wissen, das der Herausgeber mit Ihnen über die Fallstricke geteilt hat, die beim automatischen Antworten auf WeChat-Nachrichten auftreten. Ich hoffe, es wird für alle hilfreich sein!
<span style="font-family:Courier New;font-size:14px;"><?php define("TOKEN","weixin"); $weixinObj = new Wechat(); $weixinObj->valid();? class?Wechat{? public?function?valid(){? $echoStr?=?$_GET['echostr'];? //如果是第一次接入? if($this->checkSignature()?&&?$echoStr?){? echo?$echoStr;? exit;? }else{? $this->responseMsg();? }? }? //校驗(yàn)方法? 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;? }? }? /*?接收?qǐng)D片消息格式? <xml>? <ToUserName><![CDATA[toUser]]></ToUserName>? <FromUserName><![CDATA[fromUser]]></FromUserName>? <CreateTime>1348831860</CreateTime>? <MsgType><![CDATA[image]]></MsgType>? <PicUrl><![CDATA[this is a url]]></PicUrl>? <MediaId><![CDATA[media_id]]></MediaId>? <MsgId>1234567890123456</MsgId>? </xml>? */? public?function?responseMsg(){? //獲取微信服務(wù)器POST請(qǐng)求中的數(shù)據(jù)? $postStr?=?$GLOBALS["HTTP_RAW_POST_DATA"];? if(?!empty($postStr)?){? $postObj?=?simplexml_load_string($postStr,?'SimpleXMLElement',?LIBXML_NOCDATA);? $fromUser?=?$postObj->FromUserName;? $toUser?=?$postObj->ToUserName;? $time?=?time();? $msgType=?$postObj->MsgType;? $picUrl?=?$postObj->PicUrl;? $mediaId?=?$postObj->MediaId;? $template?=?"<xml>? <ToUserName><![CDATA[%s]]></ToUserName>? <FromUserName><![CDATA[%s]]></FromUserName>? <CreateTime>%s</CreateTime>? <MsgType><![CDATA[%s]]></MsgType>? <Content><![CDATA[%s]]></Content>? </xml>";? if(?strtolower($msgType)!='image'?){? $msgType?=?"text";? $content?=?"我只接受圖片消息";? }else{? $msgType?=?"text";? if(?!empty(?$picUrl?)?){? $content?=?"圖片鏈接為:".$picUrl."\n";? $content?.=?"媒體id:".$mediaId;? }else{? $content?=?"請(qǐng)發(fā)送圖片";//消息為空? }? }? $info?=?sprintf($template,?$fromUser,?$toUser,?$time,?$msgType,?$content);? echo?$info;? }else{? echo?"";? exit;? }? }? }</span>
Das obige ist der detaillierte Inhalt vonBei der automatischen Beantwortung von WeChat-Nachrichten sind in der PHP-WeChat-Entwicklung Probleme aufgetreten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)