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 URL验证正则表达式
Jul 19 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
ThinkPHP应用模式扩展详解
Jul 16 PHP
PHP实现阳历到农历转换的类实例
Mar 07 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
php微信公众号开发之答题连闯三关
Oct 20 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
php7 图形用户界面GUI 开发示例
Feb 22 PHP
eval(cmd)与eval($cmd)的区别与联系
Jul 07 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
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
咖啡与牛奶
2021/03/03 冲泡冲煮
PHP中显示格式化的用户输入
2006/10/09 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
身份证号码前六位所代表的省,市,区, 以及地区编码下载
2007/04/12 Javascript
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
JavaScript模拟数组合并concat
2016/03/06 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
基于jquery二维码生成插件qrcode
2017/01/07 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
vuejs 动态添加input框的实例讲解
2018/08/24 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
2020/03/12 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
python获取当前计算机cpu数量的方法
2015/04/18 Python
十条建议帮你提高Python编程效率
2016/02/16 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python 自动重连wifi windows的方法
2018/12/18 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
教师求职信范文
2014/05/24 职场文书
企业挂职心得体会
2014/09/10 职场文书
农业生产宣传标语
2014/10/08 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android