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 相关文章推荐
PHP4中实现动态代理
Oct 09 PHP
php生成随机密码的几种方法
Jan 17 PHP
PHP之短标签开启设置
Jun 17 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
Aug 16 PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
详解php协程知识点
Sep 21 PHP
PHP htmlspecialchars_decode()函数用法讲解
Mar 01 PHP
php中的钩子理解及应用实例分析
Aug 30 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 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-redis中文文档介绍
2013/02/07 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
Laravel Eloquent ORM 多条件查询的例子
2019/10/10 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
详解React开发中使用require.ensure()按需加载ES6组件
2017/05/12 Javascript
详解Windows下安装Nodejs步骤
2017/05/18 NodeJs
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
深入理解react-router 路由的实现原理
2018/09/26 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
2019/05/18 Python
python程序变成软件的实操方法
2019/06/24 Python
python中selenium库的基本使用详解
2020/07/31 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
英文自荐信常用句子
2014/03/26 职场文书
热情服务标语
2014/10/07 职场文书
事业单位个人查摆问题及整改措施
2014/10/28 职场文书
旷课检讨书范文
2015/01/27 职场文书
Django migrate报错的解决方案
2021/05/20 Python