php教程

超轻量级php框架startmvc

php版微信自定义回复功能示例

更新时间:2020-03-16 04:09:53 作者:startmvc
本文实例讲述了php版微信自定义回复功能。分享给大家供大家参考,具体如下:配置好服务

本文实例讲述了php版微信自定义回复功能。分享给大家供大家参考,具体如下:

配置好服务器之后,就可以用php实现自动回复了。

index.php中的代码


<?php
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
 $wechatObj->valid();
}else{
 $wechatObj->responseMsg();
}
class wechatCallbackapiTest
{
 public function valid()
 {
 $echoStr = $_GET["echostr"];
 if($this->checkSignature()){
 header('content-type:text');
 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, 'SimpleXMLElement', 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;
 }
 }
}
?>

效果:

当用户输入?或者?就会获取当前时间

php版 微信 自定义回复