php微信开发之关注事件


Posted in PHP onJune 14, 2018

本文实例为大家分享了php微信关注事件的具体代码,供大家参考,具体内容如下

<?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
 public function valid()
 {
  $echoStr = $_GET["echostr"];

  //valid signature , option
  if($this->checkSignature()){
   echo $echoStr;
   exit;
  }
 }

 public function responseMsg()
 {
  //get post data, May be due to the different environments
  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

  //extract post data
  if (!empty($postStr)){

    $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $type = $postObj->MsgType;
    $customevent = $postObj->Event;
    $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($type=="event" and $customrevent=="subscribe"){
     $contentStr = "感谢你的关注\n回复1查看联系方式\n回复2查看最新资讯\n回复3查看法律文书";
     $msgType = "text";
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
     } 
    if(!empty( $keyword ))
    {        
     $msgType = "text";
     if($keyword=="1"){
     $contentStr = "qiphon";}
     if($keyword=="2"){
     $contentStr = "test 。";}
     if($keyword=="3"){
     $contentStr = "test333";}     
     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
     echo $resultStr;
    }else{
     echo "Input something...";
    }

  }else {
   echo "";
   exit;
  }
 }

 private function checkSignature()
 {
  $signature = $_GET["signature"];
  $timestamp = $_GET["timestamp"];
  $nonce = $_GET["nonce"]; 

  $token = TOKEN;
  $tmpArr = array($token, $timestamp, $nonce);
  sort($tmpArr);
  $tmpStr = implode( $tmpArr );
  $tmpStr = sha1( $tmpStr );

  if( $tmpStr == $signature ){
   return true;
  }else{
   return false;
  }
 }
}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
PHP中的session永不过期的解决思路及实现方法分享
Apr 20 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
Jan 22 PHP
PHP获取中英混合字符串长度的方法
Jun 07 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
Nov 05 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
Laravel的throttle中间件失效问题解决方法
Oct 09 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
PHP如何搭建百度Ueditor富文本编辑器
Sep 21 PHP
php中如何执行linux命令详解
Nov 06 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 #PHP
php微信开发之谷歌测距
Jun 14 #PHP
php微信开发之图片回复功能
Jun 14 #PHP
php微信开发之音乐回复功能
Jun 14 #PHP
php微信开发之关键词回复功能
Jun 13 #PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 #PHP
微信公众号开发之获取位置信息php代码
Jun 13 #PHP
You might like
php mysql数据库操作类
2008/06/04 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP Static延迟静态绑定用法分析
2016/03/16 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
使用JavaScript开发IE浏览器本地插件实例
2015/02/18 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
Jquery使用css方法改变样式实例
2015/05/18 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
详解Vue.js iview实现树形权限表(可扩展表)
2018/09/30 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
2020/01/19 Python
python中数字是否为可变类型
2020/07/08 Python
运动会入场词50字
2014/02/20 职场文书
公立医院改革实施方案
2014/03/14 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
2014年内部审计工作总结
2014/12/09 职场文书
新郎父亲婚礼致辞
2015/07/27 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android