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


Posted in PHP onDecember 05, 2016

本文实例讲述了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版微信自定义回复功能示例

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
如何利用php+mysql保存和输出文件
Oct 09 PHP
IIS6的PHP最佳配置方法
Mar 19 PHP
PHP开启gzip页面压缩实例代码
Mar 11 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
PHP学习之整理字符串
Apr 17 PHP
解析PHP工厂模式的好处
Jun 18 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
Nov 04 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
May 20 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 #PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
Dec 05 #PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 #PHP
thinkPHP中验证码的简单实现方法
Dec 05 #PHP
php获取当前月与上个月月初及月末时间戳的方法
Dec 05 #PHP
简述php环境搭建与配置
Dec 05 #PHP
php 变量引用与变量销毁机制详细介绍
Dec 05 #PHP
You might like
浅析php适配器模式(Adapter)
2014/11/25 PHP
PHP动态输出JavaScript代码实例
2015/02/12 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
FCK调用方法..
2006/12/21 Javascript
关于图片验证码设计的思考
2007/01/29 Javascript
List Information About the Binary Files Used by an Application
2007/06/18 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
2018/08/10 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
[01:34]2014DOTA2 TI预选赛预选赛 选手比赛房大揭秘!
2014/05/20 DOTA
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
python 控制语句
2011/11/03 Python
Python修改MP3文件的方法
2015/06/15 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
python实现自动发送邮件
2018/06/20 Python
python修改txt文件中的某一项方法
2018/12/29 Python
Python常用类型转换实现代码实例
2020/07/28 Python
Python远程方法调用实现过程解析
2020/07/28 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
生物科学专业个人求职信范文
2013/12/05 职场文书
生物学学生自我评价
2014/01/17 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
学生自我评语大全
2014/04/18 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
校园运动会广播稿
2014/10/06 职场文书
优秀教师申报材料
2014/12/16 职场文书
男人帮观后感
2015/06/18 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书
Django操作cookie的实现
2021/05/26 Python