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连接mssql:pdo odbc sql server
Jul 20 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
php检索或者复制远程文件的方法
Mar 13 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
9个比较实用的php代码片段
Mar 15 PHP
php使用curl详细解析及问题汇总
Aug 11 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
PHP PDOStatement::columnCount讲解
Jan 30 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 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 图片上传类代码
2009/07/17 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
2014/06/19 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
Laravel实现定时任务的示例代码
2017/08/10 PHP
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
JS实现很酷的EMAIL地址添加功能实例
2015/02/28 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
利用JQUERY实现多个AJAX请求等待的实例
2017/12/14 jQuery
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
基于vue和websocket的多人在线聊天室
2020/02/01 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
[52:27]2018DOTA2亚洲邀请赛 3.31 小组赛B组 paiN vs Secret
2018/04/01 DOTA
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
举例讲解Python面向对象编程中类的继承
2016/06/17 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
django url到views参数传递的实例
2019/07/19 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
老师给学生的表扬信
2014/01/17 职场文书
社会学专业求职信
2014/07/17 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
员工工作自我评价
2014/09/26 职场文书
2014年财政所工作总结
2014/11/22 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
施工员岗位职责范本
2015/04/11 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android