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 相关文章推荐
BBS(php &amp; mysql)完整版(六)
Oct 09 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
php循环创建目录示例分享(php创建多级目录)
Mar 04 PHP
php断点续传之如何分割合并文件
Mar 22 PHP
PHP中数组的分组排序实例
Jun 01 PHP
ThinkPHP实现跨模块调用操作方法概述
Jun 20 PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 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
火车采集器 免费版使出收费版本功能实现原理
2009/09/17 PHP
完美实现wordpress禁止文章修订和自动保存的方法
2014/11/03 PHP
PHP中curl_setopt函数用法实例分析
2015/04/16 PHP
CodeIgniter辅助之第三方类库third_party用法分析
2016/01/20 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
javascript使用activex控件的代码
2011/01/27 Javascript
使用jquery实现放大镜效果
2014/09/02 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
详解JavaScript中localStorage使用要点
2016/01/13 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
原生JS实现简单的无缝自动轮播效果
2018/09/26 Javascript
微信小程序自定义多列选择器使用详解
2019/06/21 Javascript
微信小程序学习总结(二)样式、属性、模板操作分析
2020/06/04 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
Python 进程操作之进程间通过队列共享数据,队列Queue简单示例
2019/10/11 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
Python sublime安装及配置过程详解
2020/06/29 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
python实现感知机模型的示例
2020/09/30 Python
image-set实现Retina屏幕下图片显示详细介绍
2012/12/24 HTML / CSS
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
三年级小学生评语
2014/04/22 职场文书
“四风”问题自我剖析材料思想汇报
2014/09/23 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
基层工作经历证明
2015/06/19 职场文书
感恩教师主题班会
2015/08/12 职场文书
Python中字符串对象语法分享
2022/02/24 Python
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers