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读取xml实例代码
Jan 28 PHP
PHP中如何判断AJAX提交的数据
Feb 05 PHP
php中的比较运算符详解
Oct 28 PHP
php使用json_encode对变量json编码
Apr 07 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 09 PHP
PHP实现单例模式建立数据库连接的方法分析
Feb 11 PHP
Nginx+php配置文件及原理解析
Dec 09 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
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
js 实现无缝滚动 兼容IE和FF
2009/07/15 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
Jquery时间验证和转换工具小例子
2013/07/01 Javascript
JS取文本框中最小值的简单实例
2013/11/29 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
详解AngularJS1.x学习directive 中‘&amp; ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
python3简单实现微信爬虫
2015/04/09 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
python中异常捕获方法详解
2017/03/03 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
关于python pycharm中输出的内容不全的解决办法
2020/01/10 Python
Jupyter notebook如何实现指定浏览器打开
2020/05/13 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
学生发电厂实习自我鉴定
2013/09/22 职场文书
机电专业毕业生推荐信
2013/11/10 职场文书
班组长的岗位职责
2013/12/09 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
初中学习计划书范文
2014/09/15 职场文书
群众路线教育实践活动剖析材料
2014/09/30 职场文书
麦田里的守望者读书笔记
2015/06/30 职场文书