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 相关文章推荐
用Zend Encode编写开发PHP程序
Oct 09 PHP
PHP的开发框架的现状和展望
Mar 16 PHP
php 设计模式之 单例模式
Dec 19 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
克隆一个新项目的快捷方式
Apr 10 PHP
php数组合并的二种方法
Mar 21 PHP
ThinkPHP使用心得分享-上传类UploadFile的使用
May 15 PHP
php CI框架插入一条或多条sql记录示例
Jul 29 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
PHP实现的文件上传类与用法详解
Jul 05 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 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出现web系统多域名登录失败的解决方法
2014/09/30 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
thinkphp jquery实现图片上传和预览效果
2020/07/22 PHP
JavaScript 学习点滴记录
2009/04/24 Javascript
js 表格隔行颜色
2009/12/02 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
一个简单的jQuery计算器实现了连续计算功能
2014/07/21 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jquery获取节点名称
2015/04/26 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
使用vue官方提供的模板vue-cli搭建一个helloWorld案例分析
2018/01/16 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
Python日期操作学习笔记
2008/10/07 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
Python函数和模块的使用总结
2019/05/20 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
蔻驰意大利官网:COACH意大利
2019/01/16 全球购物
日语系毕业生推荐信
2013/11/11 职场文书
给校长的建议书400字
2014/05/15 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
导师工作推荐信
2015/03/27 职场文书
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
2022/04/06 Vue.js