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学习之PHP变量
Oct 09 PHP
用PHP和ACCESS写聊天室(九)
Oct 09 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
浅谈php命令行用法
Feb 04 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
Apr 27 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
May 23 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
PHP实现的用户注册表单验证功能简单示例
Feb 25 PHP
php框架知识点的整理和补充
Mar 01 PHP
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
Apr 01 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
留言板翻页的实现详解
2006/10/09 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
thinkPHP框架中执行原生SQL语句的方法
2017/10/25 PHP
PHP实现图的邻接矩阵表示及几种简单遍历算法分析
2017/11/24 PHP
tp5(thinkPHP5框架)时间查询操作实例分析
2019/05/29 PHP
一个封装js代码-----展开收起效果示例
2013/07/03 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
div失去焦点事件实现思路
2014/04/22 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
详解nodejs微信jssdk后端接口
2017/05/25 NodeJs
JS实现移动端触屏拖拽功能
2018/07/31 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Python实现定时备份mysql数据库并把备份数据库邮件发送
2018/03/08 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
简单介绍HTML5中audio标签的使用
2015/09/24 HTML / CSS
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
Vans(范斯)新西兰官方网站:美国原创极限运动品牌
2020/09/19 全球购物
广告学专业毕业生自荐信
2013/09/24 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
一帮一活动总结
2014/05/08 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL