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 结果集的分页实现代码
Mar 10 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
Sep 25 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
基于php缓存的详解
May 15 PHP
ThinkPHP调试模式与日志记录概述
Aug 22 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
php+mysql实现简单登录注册修改密码网页
Nov 30 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
php获取'/'传参的值简单方法
Jul 13 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
PHP 应用容器化以及部署方法
2018/02/12 PHP
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
实例详解angularjs和ajax的结合使用
2015/10/22 Javascript
javascript数据结构之双链表插入排序实例详解
2015/11/25 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
微信小程序 前端源码逻辑和工作流详解
2016/10/08 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
Javascript中的作用域及块级作用域
2017/12/08 Javascript
详解Vue单元测试Karma+Mocha学习笔记
2018/01/31 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
Vue动态组件与异步组件实例详解
2019/02/23 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
python创建临时文件夹的方法
2015/07/06 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
Python使用Numpy模块读取文件并绘制图片
2020/05/13 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
Python之Sklearn使用入门教程
2021/02/19 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
Hawes & Curtis官网:英国经典品牌
2019/07/27 全球购物
应届大学生的推荐信
2013/11/20 职场文书
法学院毕业生求职信
2014/06/25 职场文书
Matlab求解数组中的最大值及它所在的具体位置
2021/04/16 Python
MySQL中varchar和char类型的区别
2021/11/17 MySQL
vue3不同环境下实现配置代理
2022/05/25 Vue.js