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开发中页面乱码的产生与解决
Mar 27 PHP
PHP 工厂模式使用方法
May 18 PHP
php开发文档 会员收费1期
Aug 14 PHP
php配置php-fpm启动参数及配置详解
Nov 04 PHP
php使用cookie保存登录用户名的方法
Jan 26 PHP
10款实用的PHP开源工具
Oct 23 PHP
php使用ffmpeg获取视频信息并截图的实现方法
May 03 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
Mar 23 PHP
php将字符串转换为数组实例讲解
May 05 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 PDO简单教程
2019/05/28 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
css图片自适应大小
2007/11/28 Javascript
javascript 常用方法总结
2009/06/03 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
javascript使用闭包模拟对象的私有属性和方法
2016/10/05 Javascript
AngularJS中transclude用法详解
2016/11/03 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
Layui 导航默认展开和菜单栏选中高亮设置的方法
2019/09/04 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
sqlalchemy对象转dict的示例
2014/04/22 Python
python中的闭包用法实例详解
2015/05/05 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
pandas把所有大于0的数设置为1的方法
2019/01/26 Python
python调用接口的4种方式代码实例
2019/11/19 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python 使用Opencv实现目标检测与识别的示例代码
2020/09/08 Python
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
自行车租赁公司创业计划书
2014/01/28 职场文书
中餐厅主管的职责范文
2014/02/04 职场文书
财务工作失职检讨书
2014/11/21 职场文书
项目经理岗位职责
2015/01/31 职场文书
小班教师个人总结
2015/02/05 职场文书
电气工程师岗位职责
2015/02/12 职场文书
2015年领导班子工作总结
2015/05/23 职场文书
毕业欢送会致辞
2015/07/29 职场文书
培训感想范文
2015/08/07 职场文书
应届毕业生的自我评价
2019/06/21 职场文书