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 相关文章推荐
Apache设置虚拟WEB
Oct 09 PHP
利用 window_onload 实现select默认选择
Oct 09 PHP
php 方便水印和缩略图的图形类
May 21 PHP
利用PHP实现短域名互转
Jul 05 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
Laravel 集成 Geetest验证码的方法
May 14 PHP
php解决安全问题的方法实例
Sep 19 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
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
php文件读取方法实例分析
2015/06/20 PHP
分享php邮件管理器源码
2016/01/06 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
CL vs ForZe BO5 第二场 2.13
2021/03/10 DOTA
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
vue中el-input绑定键盘按键(按键修饰符)
2020/07/22 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python邮件发送smtplib使用详解
2020/06/16 Python
Python datetime包函数简单介绍
2019/08/28 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
浅析数据存储的三种方式 cookie sessionstorage localstorage 的异同
2020/06/04 HTML / CSS
美国医疗用品、医疗设备和家庭保健用品商店:Medical Supply Depot
2018/07/08 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
.net面试题
2016/09/17 面试题
法学研究生自我鉴定范文
2013/12/04 职场文书
2014年小学元旦活动方案
2014/02/12 职场文书
乡镇交通安全实施方案
2014/03/29 职场文书
文明美德伴我成长演讲稿
2014/05/12 职场文书
2014年小学教研工作总结
2014/12/06 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
奖励申请报告范文
2015/05/15 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
2015年秋季校长开学典礼致辞
2015/07/29 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
vue响应式原理与双向数据的深入解析
2021/06/04 Vue.js
golang三种设计模式之简单工厂、方法工厂和抽象工厂
2022/04/10 Golang