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之sphinx
May 15 PHP
浅析php数据类型转换
Jan 09 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
PHP中使用BigMap实例
Mar 30 PHP
PHP微信刮刮卡 附微信接口
Jul 22 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
PHP+JS实现的实时搜索提示功能
Mar 13 PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 PHP
PHP调用全国天气预报数据接口查询天气示例
Feb 20 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
php生成微信红包数组的方法
Sep 05 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
Zend的AutoLoad机制介绍
2012/09/27 PHP
php jquery 多文件上传简单实例
2013/12/23 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
bootstrap3 dialog 更强大、更灵活的模态框
2017/04/20 Javascript
使用vue实现grid-layout功能实例代码
2018/01/05 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
layui给下拉框、按钮状态、时间赋初始值的方法
2019/09/10 Javascript
python实现ftp客户端示例分享
2014/02/17 Python
编写Python CGI脚本的教程
2015/06/29 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
老生常谈Python startswith()函数与endswith函数
2017/09/08 Python
Python科学计算包numpy用法实例详解
2018/02/08 Python
Python中psutil的介绍与用法
2019/05/02 Python
Python实现时间序列可视化的方法
2019/08/06 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
营销主管自我评价怎么写
2013/09/19 职场文书
高中毕业生自我鉴定范文
2013/09/26 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
岗位职责范本大全
2015/02/26 职场文书
筑梦中国心得体会
2016/01/18 职场文书
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL