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 日常开发小技巧
Sep 23 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
Mar 07 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 PHP
php中base_convert()进制数字转换函数实例
Nov 20 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP中预定义的6种接口介绍
May 12 PHP
是 WordPress 让 PHP 更流行了 而不是框架
Feb 03 PHP
thinkPHP统计排行与分页显示功能示例
Dec 02 PHP
PHP实现一个多功能购物网站的案例
Sep 13 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 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 for 循环语句使用方法详细说明
2010/05/09 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP magento后台无法登录问题解决方法
2016/11/24 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
写出更好的JavaScript之undefined篇(上)
2009/11/22 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
JavaScript动态修改弹出窗口大小的方法
2015/04/06 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
理解javascript模块化
2016/03/28 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
2017/08/02 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
nodejs异步编程基础之回调函数用法分析
2018/12/26 NodeJs
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
js+html5 canvas实现ps钢笔抠图
2019/04/28 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
vue项目如何监听localStorage或sessionStorage的变化
2021/01/04 Vue.js
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
Django学习教程之静态文件的调用详解
2018/05/08 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
英国女性化妆品收纳和家具网站:Beautify
2019/12/07 全球购物
企业军训感言
2014/02/08 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
企业公益活动策划方案
2014/08/24 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
关于python中模块和重载的问题
2021/11/02 Python
我收到了德劲DE1107
2022/04/05 无线电