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 相关文章推荐
用session做客户验证时的注意事项
Oct 09 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
php命名空间学习详解
Feb 27 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
PHP中使用imagick生成PSD文件缩略图教程
Jan 26 PHP
php使用ZipArchive函数实现文件的压缩与解压缩
Oct 27 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
CI框架中redis缓存相关操作文件示例代码
May 17 PHP
PHP手机短信验证码实现流程详解
May 17 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
php输出形式实例整理
May 05 PHP
Yii实现微信公众号场景二维码的方法实例
Aug 30 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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
php 模拟POST提交的2种方法详解
2013/06/17 PHP
如何使用php判断所处服务器操作系统的类型
2013/06/20 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
js 函数的执行环境和作用域链的深入解析
2009/11/01 Javascript
JavaScript DOM 学习第九章 选取范围的介绍
2010/02/19 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
Python入门篇之编程习惯与特点
2014/10/17 Python
使用python爬虫获取黄金价格的核心代码
2018/06/13 Python
python hough变换检测直线的实现方法
2019/07/12 Python
Python使用Matlab命令过程解析
2020/06/04 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
如何在网站上添加谷歌定位信息
2016/04/16 HTML / CSS
护士个人简历自荐信
2013/10/18 职场文书
优秀英语专业毕业生求职信
2013/11/23 职场文书
会议邀请函范文
2014/01/09 职场文书
我为自己代言广告词
2014/03/18 职场文书
助理政工师申报材料
2014/06/03 职场文书
四风对照检查剖析材料
2014/10/07 职场文书
清洁工岗位职责
2015/02/13 职场文书
手术室护士个人总结
2015/02/13 职场文书
java executor包参数处理功能 
2022/02/15 Java/Android
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python