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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
Smarty模板快速入门
Jan 04 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
May 16 PHP
解析PHP中intval()等int转换时的意外异常情况
Jun 21 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
May 04 PHP
php获取服务器端mac和客户端mac的地址支持WIN/LINUX
May 15 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 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文件操作实现代码分享
2011/09/01 PHP
PHP __autoload()方法真的影响性能吗?
2012/03/30 PHP
PHP手机号码归属地查询代码(API接口/mysql)
2012/09/04 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
Yii实现的多级联动下拉菜单
2016/07/13 PHP
js更优雅的兼容
2010/08/12 Javascript
firefox下input type=&quot;file&quot;的size是多大
2011/10/24 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
浅谈javascript中createElement事件
2014/12/05 Javascript
Javascript的表单验证-初识正则表达式
2016/03/18 Javascript
jQuery常见的选择器及用法介绍
2016/12/20 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
python爬虫之爬取百度音乐的实现方法
2019/08/24 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
2020/10/27 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
建筑毕业生自我鉴定
2013/10/18 职场文书
信息技术专业个人自我评价
2013/12/11 职场文书
演讲主持词
2014/03/18 职场文书
药学职务聘任书
2014/03/29 职场文书
付款委托书范本
2014/04/04 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
行政前台岗位职责
2015/04/16 职场文书
道歉的话怎么说
2015/05/12 职场文书
2019最新劳动仲裁申请书!
2019/07/08 职场文书
入门学习Go的基本语法
2021/07/07 Golang
解决 redis 无法远程连接
2022/05/15 Redis