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 相关文章推荐
如何跨站抓取别的站点的页面的补充
Oct 09 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
php表单请求获得数据求和示例
May 15 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 PHP
详解HTTP Cookie状态管理机制
Jan 14 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
PHP设计模式之工厂模式实例总结
Sep 01 PHP
Yii框架响应组件用法实例分析
Sep 04 PHP
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
Apr 01 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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.MVC的模板标签系统(二)
2006/09/05 PHP
PHP抽象类 介绍
2012/06/13 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP fclose函数用法总结
2019/02/15 PHP
分享几种好用的PHP自定义加密函数(可逆/不可逆)
2020/09/15 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
NodeJS连接MongoDB数据库时报错的快速解决方法
2016/05/13 NodeJs
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
自定义Vue中的v-module双向绑定的实现
2019/04/17 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
用JavaScript实现贪吃蛇游戏
2020/10/23 Javascript
Python实现字符串匹配算法代码示例
2017/12/05 Python
Python实现的rsa加密算法详解
2018/01/24 Python
Flask解决跨域的问题示例代码
2018/02/12 Python
对python中raw_input()和input()的用法详解
2018/04/22 Python
基于TensorFlow的CNN实现Mnist手写数字识别
2020/06/17 Python
如何使用Python调整图像大小
2020/09/26 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
python 基于wx实现音乐播放
2020/11/24 Python
阿玛尼美国官方网站:Armani.com
2016/11/25 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
学生实习介绍信
2014/01/15 职场文书
村干部培训方案
2014/05/02 职场文书
学术会议邀请函
2015/01/30 职场文书
2016年毕业实习心得体会范文
2015/10/09 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
2016年党员干部廉政承诺书
2016/03/24 职场文书