This article introduces relevant information on text automatic reply in PHP WeChat development. Interested friends can refer to it
First, go to the WeChat public platform to register an account (there are quite a few things to fill in for registration) (more), after registering, log in. You can see the "Developer Center" on the left. It seems that you need to complete some information before opening the Developer Center. Just follow the steps to complete it. After entering the developer center, first edit
to modify the configuration. When modifying the configuration, pay attention to:
http://www.example.com/weixin.php
Token is aconstant defined in the above script, such as defined in your PHP script Now:
define("TOKEN", "my_weixin");
Then, when filling in the Token, you fill in abcdefghEncodingAESKey is For message encryption. You can write a 43-bit combination of numbers and letters yourself, or you can choose "randomly generated". Generally, randomly generated is enough. The demo script is as follows: follow the public platform (for example, after the subscription account), the function is: enter hehe and return hello world!!! If you enter other characters, return to heeh and try.
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 == 'hehe'){ $contentStr = 'hello world!!!'; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr); echo $resultStr; exit(); }else{ $contentStr = '输入hehe试试'; $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; } } }
grammar errors and try again.
Attachment:
When a new user follows your official account, the information will be automatically returned: (Add this code to determine $keyword Before).if($postObj->MsgType == 'event'){ //如果XML信息里消息类型为event if($postObj->Event == 'subscribe'){ //如果是订阅事件 $contentStr = "欢迎订阅misaka去年夏天!\n更多精彩内容:http://www.php.cn/"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr); echo $resultStr; exit(); } }
The above is the detailed content of Introduction to text automatic reply in PHP WeChat development. For more information, please follow other related articles on the PHP Chinese website!