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 相关文章推荐
PHPShop存在多个安全漏洞
Oct 09 PHP
福利彩票幸运号码自动生成器
Oct 09 PHP
利用 window_onload 实现select默认选择
Oct 09 PHP
centos 5.6 升级php到5.3的方法
May 14 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
利用谷歌 Translate API制作自己的翻译脚本
Jun 04 PHP
PHPAnalysis中文分词类详解
Jun 13 PHP
php读取文件内容的方法汇总
Jan 24 PHP
php微信开发之百度天气预报
Nov 18 PHP
laravel添加前台跳转成功页面示例
Oct 22 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上传图片类显示缩略图功能
2016/06/30 PHP
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JavaScript实现向setTimeout执行代码传递参数的方法
2015/04/16 Javascript
jquery插件splitScren实现页面分屏切换模板特效
2015/06/16 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
2016/12/14 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
JS三级联动代码格式实例详解
2019/12/30 Javascript
javascript实现获取中文汉字拼音首字母
2020/05/19 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
Vue使用鼠标在Canvas上绘制矩形
2020/12/24 Vue.js
vue 动态创建组件的两种方法
2020/12/31 Vue.js
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
对Python 语音识别框架详解
2018/12/24 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
Python换行与不换行的输出实例
2020/02/19 Python
python time.strptime格式化实例详解
2021/02/03 Python
Marriott中国:万豪国际酒店查询预订
2016/09/02 全球购物
C&A巴西网上商店:时尚、衣服、手机和鞋子
2020/06/07 全球购物
史学专业毕业生求职信
2014/05/09 职场文书
2015年父亲节活动总结
2015/02/12 职场文书
国王的演讲观后感
2015/06/03 职场文书
十八大观后感
2015/06/12 职场文书
公司人事管理制度
2015/08/05 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang
html5中sharedWorker实现多页面通信的示例代码
2021/05/07 Javascript
vue+spring boot实现校验码功能
2021/05/27 Vue.js
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android