千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要为大家展示了"php开发微信公众平台接口智能回复的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"php开发微信公众平台接口智能回复的示
千家信息网最后更新 2026年11月01日php开发微信公众平台接口智能回复的示例分析

这篇文章主要为大家展示了"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是http://www.jb51.net/wx_sample.php,token就是上面define的token,这个可以改的,只要两边保持一致,默认是weixin。然后点提交,就会提示你成功了。然后扫下你申请的号码,发个消息,你会发现没反应,这个时候我们需要小调整一下,关闭接口文档中调用认证的方法,开启调用处理回复信息的方法:

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

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

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

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

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