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
PHP通用分页类page.php[仿google分页]
Aug 31 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
Yii查询生成器(Query Builder)用法实例教程
Sep 04 PHP
php中session与cookie的比较
Jan 27 PHP
分享十款最出色的PHP安全开发库中文详细介绍
Mar 22 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
php 把数字转换成汉字的代码
Jul 21 PHP
基础的WordPress插件制作教程
Nov 24 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 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 mkdir()无写权限的问题解决方法
2014/06/19 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
jquery 插件 任意位置浮动固定层
2008/12/25 Javascript
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
Javascript 面向对象编程(coolshell)
2012/03/18 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
javascript bom是什么及bom和dom的区别
2015/11/26 Javascript
Bootstrap模态框禁用空白处点击关闭
2016/10/20 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
JavaScript实现分页效果
2017/03/28 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
vue实现tab切换外加样式切换方法
2018/03/16 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python实现在pickling的时候压缩的方法
2014/09/25 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
flask-restful使用总结
2018/12/04 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
检测浏览器是否支持html5视频的代码
2013/03/28 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
贝尔帐篷精品店:Bell Tent Boutique
2019/06/12 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
《藏戏》教学反思
2014/02/11 职场文书
新文化运动的口号
2014/06/21 职场文书
幼儿园大班开学寄语
2014/08/02 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL