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 相关文章推荐
第八节--访问方式
Nov 16 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
php cout&amp;lt;&amp;lt;的一点看法
Jan 24 PHP
php结合表单实现一些简单功能的例子
Jun 04 PHP
php skymvc 一款轻量、简单的php
Jun 28 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
php实现邮件发送并带有附件
Jan 24 PHP
php防止伪造数据从地址栏URL提交的方法
Aug 24 PHP
php程序总是提示验证码输入有误解决方案
Jan 07 PHP
php parse_str() 函数的定义和用法
May 23 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
PHP PDO和消息队列的个人理解与应用实例分析
Nov 25 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
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
jquery JSON的解析方式
2009/07/25 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
SinaEditor使用方法详解
2013/12/28 Javascript
js自定义鼠标右键的实现原理及源码
2014/06/23 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
手把手搭建安装基于windows的Vue.js运行环境
2017/06/12 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
vue如何截取字符串
2019/05/06 Javascript
webpack4 SplitChunks实现代码分隔详解
2019/05/23 Javascript
Vue修改项目启动端口号方法
2019/11/07 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
Python中取整的几种方法小结
2017/01/06 Python
用python与文件进行交互的方法
2018/03/01 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
Django中在xadmin中集成DjangoUeditor过程详解
2019/07/24 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
社区党员先进事迹
2014/01/22 职场文书
企业总经理职责
2014/02/02 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
大国崛起日本观后感
2015/06/02 职场文书
Golang 入门 之url 包
2022/05/04 Golang