千家信息网

php版微信公众平台接口开发之智能回复的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章给大家分享的是有关php版微信公众平台接口开发之智能回复的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:智能回复是根据用户输入的条件来反馈结果用用
千家信息网最后更新 2026年10月31日php版微信公众平台接口开发之智能回复的示例分析

这篇文章给大家分享的是有关php版微信公众平台接口开发之智能回复的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

智能回复是根据用户输入的条件来反馈结果用用户了,这个小编以前有做过信整理了一些例子供各位参考,比较完整主要是介绍在开发端了。

微信自推出后,着实火了一把,而支付功能的推出,又把微信推到了一个无可比拟的高度,然后申请微信订阅号或者服务号的人也开始比肩接踵。下面我将给大家简单讲解下微信公众平台开发接口。

先去 微信公众平台 申请账号,然后按照提示一步步。在选择订阅号和服务号上,个人只能申请订阅号,而且局限于基础功能;而企业两者都可以申请。订阅号和服务号的区别在于:订阅号可以每天群发一条消息,而服务号一个月才能群发一条;订阅号需要微信认证才能自定义菜单(企业才能认证,认证300元一次),而服务号则一开始就有自定义菜单,但是也可以认证,认证后服务号直接升级高级功能。更多差异请百度...

我申请的是订阅号,因为是个人。只要传一张手捧身份证的人头照就可以了,虽然有点傻。然后等待信息登记审核(一天左右时间)。通过后直接进入 微信公众平台 ,点击功能进入高级功能,关闭编辑模式,开启开发模式,然后下载微信提供的demo,解压,就一个文件:wx_sample.php,代码如下:

valid();class wechatCallbackapiTest{ public function valid()  {    $echoStr = $_GET["echostr"];    //valid signature , option    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"];    //extract post data if (!emptyempty($postStr)){        $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);        $fromUsername = $postObj->FromUserName;        $toUsername = $postObj->ToUserName;        $keyword = trim($postObj->Content);        $time = time();        $textTpl = "            %s            0    ";  if(!emptyempty( $keyword ))        {        $msgType = "text";         $contentStr = "Welcome to wechat world!";         $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);         echo $resultStr;        }else{         echo "Input something...";        }    }else {     echo "";     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; } }}?>

其实就是认证,然后发送消息。将文件传到你的服务器上,我放在根目录下,然后修改开发模式下的url和token值。假设这里使用的url是https://www.jb51.net/wx_sample.php,token就是上面define的token,这个可以改的,只要两边保持一致,默认是weixin。然后点提交,就会提示你成功了。然后扫下你申请的号码,发个消息,你会发现没反应,这个时候我们需要小调整一下,关闭接口文档中调用认证的方法,开启调用处理回复信息的方法:

//$wechatObj->valid();$wechatObj->responseMsg();

这个时候你再发个消息,你就会收到:Welcome to wechat world!

是不是在关注了有些订阅号或者服务号之后,马上会收到一条消息。什么回复1,怎样怎样;回复2,怎样怎样之类的。

拿我自己的博客举例,我的关注语是:

感谢您关注AndyYang个人博客微信小助手。
回复【1】返回两篇最新文章
回复【2】返回两篇人气文章
回复【3】返回两篇热评文章
回复【4】返回两篇最新技术文章
回复【5】返回两篇最新写作文章
回复其他返回搜索关键字的两篇文章
更多精彩内容,尽在:www.jb51.net。亲们,请多多支持哦,谢谢~

那这个怎么实现呢?直接上代码:

valid();$wechatObj->responseMsg();class wechatCallbackapiTest{  public function valid()  {    $echoStr = $_GET["echostr"];    //valid signature , option    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"];    //extract 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();      $MsgType = $postObj->MsgType; //add      $textTpl = "                        %s                        0        ";      if($MsgType != 'event') {        if(!empty( $keyword ))        {          $msgType = "text";          $contentStr = "Welcome to wechat world!";        }else{          echo "Input something...";        }      } else {        $msgType = "text";        $contentStr = "感谢您关注AndyYang个人博客微信小助手。\r\n".          "回复【1】返回两篇最新文章\r\n".          "回复【2】返回两篇人气文章\r\n".          "回复【3】返回两篇热评文章\r\n".          "回复【4】返回两篇最新技术文章\r\n".          "回复【5】返回两篇最新写作文章\r\n".          "回复其他返回搜索关键字的两篇文章\r\n".          "更多精彩内容,尽在:www.jb51.net。亲们,请多多支持哦,谢谢~";        ;      }      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);      echo $resultStr;    }else {      echo "";      exit;    }  }  private function checkSignature()  {    $signature = $_GET["signature"];    $timestamp = $_GET["timestamp"];    $nonce = $_GET["nonce"];    $token = TOKEN;    $tmpArr = array($token, $timestamp, $nonce);    sort($tmpArr, SORT_STRING); //这个在新的sdk中添加了第二个参数(compare items as strings)    $tmpStr = implode( $tmpArr );    $tmpStr = sha1( $tmpStr );    if( $tmpStr == $signature ){      return true;    }else{      return false;    }  }}

当然这里只是简单的实现下,在微信公众平台提供的sdk上做简单的修改,实际上msgtype类型很多,就算消息类型为event的,它里面也有subscribe、LOCATION等,而如果细化的话,就用Event为subscribe来处理初次关注的事件,代码如下:

weixin_run();class wechatCallbackapiTest {  private $fromUsername;  private $toUsername;  private $times;  private $keyword;  private $MsgType;  public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!emptyempty($postStr)) {      $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);      $this->fromUsername = $postObj->FromUserName;      $this->toUsername  = $postObj->ToUserName;      $this->keyword   = trim($postObj->Content);      $this->time     = time();      $this->MsgType   = $postObj->MsgType;    } else {     echo "Pay attention to http://{$_SERVER['HTTP_HOST']},thanks!";     exit;    }  }  public function weixin_run() {    $this->responseMsg();    if($this->MsgType != 'event') { //attention      $data = $this->getData();     $this->fun_xml("news", $data, count($data));    } else {      $data = $this->getWelData();     $this->fun_xml("text", $data, 1);    }  } //type: text 文本类型, news 图文类型 //text,array(内容),array(ID) //news,array(array(标题,介绍,图片,超链接),...小于10条),条数 private function fun_xml($type, $value_arr, $count) {   $con="   fromUsername}]]>   toUsername}]]>   {$this->times}   ";    switch($type) {     case "text" :   $con.="";     break;   case "news" :   $con.="{$count}    ";   foreach($value_arr as $key => $v) {      $con.="       <![CDATA[{$v[0]}]]>                            ";   }   $con.="";     break;   }   echo $con.""; }  private function getData() {    //数据库通过关键字查询文章    //。。。。。。。。。。。。    //。。。。。。。。。。。。    //返回文章结果的数组    return $data;  }  private function getWelData() {    $data = "感谢您关注AndyYang个人博客微信小助手。\r\n".          "回复【1】返回两篇最新文章\r\n".          "回复【2】返回两篇人气文章\r\n".          "回复【3】返回两篇热评文章\r\n".          "回复【4】返回两篇最新技术文章\r\n".          "回复【5】返回两篇最新写作文章\r\n".          "回复其他返回搜索关键字的两篇文章\r\n".          "更多精彩内容,尽在:www.jb51.net。亲们,请多多支持哦,谢谢~";        ;    return $data;  }}

感谢各位的阅读!关于"php版微信公众平台接口开发之智能回复的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文章 服务 订阅 认证 公众 平台 内容 更多 消息 开发 个人 功能 篇文章 接口 关键 关键字 博客 类型 智能 精彩 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技海报 上海睿民互联网科技有限公司 山东特亿宝互联网科技有限公司 云之行互联网科技 上海喔噻互联网科技 融贸通互联网科技 互联网巨头投资的硬核科技 山东吉时兔互联网科技有限公司 蓝色互联网科技 随着互联网科技发展 福建科技产业互联网发展 未来五年的互联网科技 中国互联网十大科技股排名 企晟互联网信息科技有限公司 长沙茂晟互联网科技有限公司 陕西云淼互联网科技公司 普陀区互联网教育科技管理办法 科技和互联网行业的特点 互联网领先科技成果宣传视频 高科技和互联网的现代国家 互联网科技有限公司经营范围 互联网最新的科技有限公司 互联网科技小贷 润盈互联网科技 互联网软件和科技 语蝶互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 互联网科技人工智能实验室 迪庆互联网科技招生 全球科技与互联网公司市值变化
0