With the rapid development of mobile Internet, WeChat has become an indispensable social tool in people's lives. In WeChat public accounts, the automatic reply function is also an indispensable part. This article will introduce how to use PHP to write an automatic reply program for WeChat public accounts.
First of all, you need to have a WeChat public account. If you don't have one, you can apply for one. Secondly, you also need to have basic abilities in PHP programming.
In the WeChat public platform, you need to obtain the developer API key before you can use the API for messaging Send and receive. In the WeChat public platform, enter the developer center, select basic configuration, and then get your own developer API key.
The following is a sample code for a simple WeChat public account automatic reply program:
<?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; } } ?>
Code explanation:
Define developer API key
define("TOKEN", "your_token");
You need to replace "your_token" with your own developer API key.
Verification Developer Server
if (isset($_GET["echostr"])) { $echoStr = $_GET["echostr"]; if ($this->checkSignature()) { echo $echoStr; exit; } }
When the WeChat public platform sends a verification request to the developer server, verification is required.
Process the received message
$postObj = simplexml_load_string($postStr,'SimpleXMLElement'); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $type = $postObj->MsgType; $content = trim($postObj->Content);
Process the message received from the WeChat public platform and obtain the message type and message content.
Processing of text messages
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; }
When a text message is received, reply content is generated based on the message content.
Verify developer server
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; } }
Method to verify developer server.
Upload the written code to the server and set the interface configuration information in the WeChat public platform. Complete the server address, developer API key, and interface configuration information and save it.
In the WeChat official account, send a message to the official account. If the program runs normally, it will automatically reply with the corresponding content.
Summary
This article briefly introduces how to use PHP to write an automatic reply program for WeChat public accounts. After simple code writing, debugging and deployment, a simple automatic reply program can be implemented. Of course, this example is just an entry-level program. If you need more complex business logic, you need to write and expand the code yourself.
The above is the detailed content of How to use PHP to write an automatic reply program for WeChat public accounts. For more information, please follow other related articles on the PHP Chinese website!