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连接mysql数据库代码
Mar 10 PHP
PHP 创建标签云函数代码
May 26 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
php rsa 加密,解密,签名,验签详解
Dec 06 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 PHP
PHP实现微信提现功能
Sep 30 PHP
PHP中$GLOBALS与global的区别详解
Mar 21 PHP
解决tp5在nginx下修改配置访问的问题
Oct 16 PHP
解决php扩展安装不生效问题
Oct 25 PHP
php+iframe 实现上传文件功能示例
Mar 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)
2013/06/21 PHP
php解析http获取的json字符串变量总是空白null
2015/03/02 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
jquery1.83 之前所有与异步列队相关的模块详细介绍
2012/11/13 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
JavaScript实现DIV层拖动及动态增加新层的方法
2015/05/12 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
详解JS判断页面是在手机端还是在PC端打开的方法
2019/04/26 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
Python类属性与实例属性用法分析
2015/05/09 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
Python File readlines() 使用方法
2018/03/19 Python
利用Python如何批量更新服务器文件
2018/07/29 Python
Python实现的连接mssql数据库操作示例
2018/08/17 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
Python中six模块基础用法
2019/12/08 Python
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
施工员岗位职责
2014/03/16 职场文书
产品包装策划方案
2014/05/18 职场文书
三好生演讲稿
2014/09/12 职场文书
缓刑人员思想汇报
2014/10/11 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL