Mit der rasanten Entwicklung des mobilen Internets ist WeChat zu einem unverzichtbaren sozialen Werkzeug im Leben der Menschen geworden. Auch in öffentlichen WeChat-Konten ist die automatische Antwortfunktion ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten schreiben.
Zunächst benötigen Sie ein öffentliches WeChat-Konto. Wenn Sie noch keins haben, können Sie eines beantragen. Zweitens müssen Sie auch über grundlegende Kenntnisse in der PHP-Programmierung verfügen.
Auf der öffentlichen WeChat-Plattform müssen Sie den Entwickler-API-Schlüssel erhalten um die API zum Senden und Empfangen von Nachrichten zu verwenden. Rufen Sie auf der öffentlichen WeChat-Plattform das Entwicklerzentrum auf, wählen Sie die Grundkonfiguration aus und holen Sie sich dann Ihren eigenen Entwickler-API-Schlüssel.
Das Folgende ist ein Beispielcode für einen einfachen WeChat-Autoresponder für öffentliche Konten:
<?php //获取开发者API密钥 define("TOKEN", "your_token"); //验证开发者服务器 if (isset($_GET["echostr"])) { $echoStr = $_GET["echostr"]; if ($this->checkSignature()) { echo $echoStr; exit; } } //处理接收到的消息 $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)) { $postObj = simplexml_load_string($postStr,'SimpleXMLElement'); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $type = $postObj->MsgType; $content = trim($postObj->Content); //文本消息 if($type == "text") { if($content == "hello") { $msgContent = "您好,欢迎关注我的公众号!"; } else { $msgContent = "您好,我是自动回复机器人,我还在学习中,暂时无法回复您的消息,敬请谅解!"; } $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgContent); echo $resultStr; 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; } } ?>
define("TOKEN", "your_token");
if (isset($_GET["echostr"])) { $echoStr = $_GET["echostr"]; if ($this->checkSignature()) { echo $echoStr; exit; } }
$postObj = simplexml_load_string($postStr,'SimpleXMLElement'); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $type = $postObj->MsgType; $content = trim($postObj->Content);
if($type == "text") { if($content == "hello") { $msgContent = "您好,欢迎关注我的公众号!"; } else { $msgContent = "您好,我是自动回复机器人,我还在学习中,暂时无法回复您的消息,敬请谅解!"; } $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgContent); echo $resultStr; 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; } }
Das obige ist der detaillierte Inhalt vonSo schreiben Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!