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读取RSS feed的代码
Aug 01 PHP
简单的php 验证图片生成函数
May 21 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 PHP
php object转数组示例
Jan 15 PHP
php弹出对话框实现重定向代码
Jan 23 PHP
关于php支持分块与断点续传文件下载功能代码
May 09 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
Nov 24 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
PHP 扩展Memcached命令用法实例总结
Jun 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 MSSQL 存储过程的方法
2008/12/24 PHP
程序员编程十条戒律
2009/07/09 PHP
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
php自定义urlencode,urldecode函数实例
2015/03/24 PHP
js原型链原理看图说明
2012/07/07 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
jQuery旋转木马式幻灯片轮播特效
2015/12/04 Javascript
学习JavaScript设计模式之观察者模式
2020/04/22 Javascript
Bootstrap框架结合jQuery仿百度换肤功能实例解析
2016/09/17 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
详解Angular2 关于*ngFor 嵌套循环
2017/05/22 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
[01:33]DOTA2上海特级锦标赛 LIQUID战队完整宣传片
2016/03/16 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
python任务调度实例分析
2015/05/19 Python
python中的格式化输出用法总结
2016/07/28 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python从list列表中选出一个数和其对应的坐标方法
2019/07/20 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
毕业自我评价范文
2013/11/17 职场文书
车间安全生产标语
2014/06/06 职场文书
企业安全标语
2014/06/07 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
春季运动会开幕词
2015/01/28 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers