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 empty函数 使用说明
Aug 10 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
php正则表达式(regar expression)
Sep 10 PHP
php实现httpclient类示例
Apr 08 PHP
PHP中file_exists函数不支持中文名的解决方法
Jul 26 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
May 29 PHP
php图片裁剪函数
Oct 31 PHP
php桥接模式应用案例分析
Oct 23 PHP
php正则表达式使用方法整理集合
Jan 31 PHP
PHP超全局变量实现原理及代码解析
Sep 01 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
用文本作数据处理
2006/10/09 PHP
php在字符串中查找另一个字符串
2008/11/19 PHP
解析coreseek for sphinx的使用
2013/06/21 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
详解js界面跳转与值传递
2016/11/22 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
PYTHON正则表达式 re模块使用说明
2011/05/19 Python
Python greenlet实现原理和使用示例
2014/09/24 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python从文件中读取数据的方法讲解
2019/02/14 Python
Python性能分析工具Profile使用实例
2019/11/19 Python
python 浅谈serial与stm32通信的编码问题
2019/12/18 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
Python新手学习raise用法
2020/06/03 Python
python Pexpect模块的使用
2020/12/25 Python
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
马来西亚综合购物网站:Lazada马来西亚
2018/06/05 全球购物
掌上明珠Java程序员面试总结
2016/02/23 面试题
2014年上半年工作自我评价
2014/01/18 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
2014年教师工作总结
2014/11/10 职场文书
证婚人致辞精选
2015/07/28 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
python process模块的使用简介
2021/05/14 Python