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 addslashes 函数详细分析说明
Jun 23 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
php array_map()数组函数使用说明
Jul 12 PHP
浅析php header 跳转
Jun 17 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
php中用memcached实现页面防刷新功能
Aug 19 PHP
PHP实现CSV文件的导入和导出类
Mar 24 PHP
PHP防盗链的基本思想 防盗链的设置方法
Sep 25 PHP
PHP pear安装配置教程
May 14 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
Yii框架批量插入数据扩展类的简单实现方法
May 23 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 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
根德Grundig S400/S500/S700电路分析
2021/03/02 无线电
js中settimeout方法加参数
2014/02/28 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
JS继承与闭包及JS实现继承的三种方式
2017/10/15 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
基于滚动条位置判断的简单实例
2017/12/14 Javascript
[原创]js实现保存文本框内容为本地文件兼容IE,chrome,火狐浏览器
2018/02/14 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
Node.js中文件系统fs模块的使用及常用接口
2020/03/06 Javascript
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
基于django传递数据到后端的例子
2019/08/16 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Python实现的北京积分落户数据分析示例
2020/03/27 Python
python模拟点击在ios中实现的实例讲解
2020/11/26 Python
python操作toml文件的示例代码
2020/11/27 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
欧缇丽加拿大官方网站:Caudalie加拿大
2019/07/18 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
文秘应聘自荐书范文
2014/02/18 职场文书
会议主持词开场白
2015/05/28 职场文书
单位证明范文
2015/06/18 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python