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的一些基础知识分享
Jul 27 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
php curl_init函数用法
Jan 31 PHP
php中判断数组相等的方法以及数组运算符介绍
Mar 30 PHP
php实现的用户查询类实例
Jun 18 PHP
Zend Framework教程之Zend_Controller_Plugin插件用法详解
Mar 07 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
Yii CDBCriteria常用方法实例小结
Jan 19 PHP
thinkPHP5实现的查询数据库并返回json数据实例
Oct 23 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
PHP创建对象的六种方式实例总结
Jun 27 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的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
ThinkPHP之import方法实例详解
2014/06/20 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
JavaScript 无符号右移运算符
2009/04/17 Javascript
js tab 选项卡
2009/04/26 Javascript
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
JavaScript 验证码的实例代码(附效果图)
2013/03/22 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
javascript函数中参数传递问题示例探讨
2014/07/31 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
在AngularJS中使用jQuery的zTree插件的方法
2016/04/21 Javascript
常用的js验证和数据处理总结
2016/08/02 Javascript
angular仿支付宝密码框输入效果
2017/03/25 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
微信小程序使用form表单获取输入框数据的实例代码
2018/05/17 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python基础教程之自定义函数介绍
2014/08/29 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python 操作文件的基本方法总结
2017/08/10 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
英国著名的美容护肤和护发产品购物网站:Lookfantastic
2020/11/23 全球购物
幼儿园园长岗位职责
2013/11/26 职场文书
会计师职业生涯规划范文
2014/02/18 职场文书
施工安全员岗位职责
2015/04/11 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js