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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
NOT NULL 和NULL
Jan 15 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
ThinkPHP空模块和空操作详解
Jun 30 PHP
php获取随机数组列表的方法
Nov 13 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
Dec 21 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
Apr 08 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 PHP
PHP实现微信公众号验证Token的示例代码
Dec 16 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
Apr 20 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 json_decode函数详细解析
2014/02/17 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[02:28]DOTA2亚洲邀请赛附加赛 RECAP赛事回顾
2015/01/29 DOTA
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python内置函数之filter map reduce介绍
2014/11/30 Python
Python复制目录结构脚本代码分享
2015/03/06 Python
Python过滤列表用法实例分析
2016/04/29 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
加拿大床上用品、家居装饰、厨房和浴室产品购物网站:Linen Chest
2018/06/05 全球购物
同学会邀请书大全
2014/01/12 职场文书
咖啡厅创业计划书范本
2014/01/22 职场文书
操行评语大全
2014/04/30 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
2019年学校消防安全责任书(2篇)
2019/10/09 职场文书
导游词之凤凰古城
2019/10/22 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python
vue ref如何获取子组件属性值
2022/03/31 Vue.js