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 相关文章推荐
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php入门教程 精简版
Dec 13 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
PHP中读写文件实现代码
Oct 20 PHP
PHP基础之运算符的使用方法
Apr 28 PHP
PHP速成大法
Jan 30 PHP
Yii2框架dropDownList下拉菜单用法实例分析
Jul 18 PHP
PHP实现支付宝即时到账功能
Dec 21 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 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
PHP4引用文件语句的对比
2006/10/09 PHP
PHP Smarty生成EXCEL文档的代码
2008/08/23 PHP
将一维或多维的数组连接成一个字符串的php代码
2010/08/08 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
两款万能的php分页类
2015/11/12 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
PHP递归遍历多维数组实现无限分类的方法
2016/05/06 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP 计算两个时间段之间交集的天数示例
2019/10/24 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
Jquery cookie操作代码
2010/03/14 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
js读取配置文件自写
2014/02/11 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
学习使用jquery iScroll.js移动端滚动条插件
2020/03/24 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
微信小程序 实战程序简易新闻的制作
2017/01/09 Javascript
jQuery实现滚动效果
2017/11/17 jQuery
React-router4路由监听的实现
2018/08/07 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
[01:44]剑指西雅图 展望TI之CIS战队专访
2014/06/25 DOTA
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python装饰器用法实例分析
2019/01/14 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
英语教师岗位职责
2014/03/16 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
联片教研活动总结
2014/07/01 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
SpringBoot Http远程调用的方法
2022/08/14 Java/Android