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 相关文章推荐
用Socket发送电子邮件
Oct 09 PHP
php 无法载入mysql扩展
Mar 12 PHP
php表单提交问题的解决方法
Apr 12 PHP
php缓冲 output_buffering的使用详解
Jun 13 PHP
php格式化日期和时间格式化示例分享
Feb 24 PHP
php正则匹配html中带class的div并选取其中内容的方法
Jan 13 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
Nov 03 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
Laravel 中使用简单的方法跟踪用户是否在线(推荐)
Oct 30 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
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
JS保存和删除cookie操作 判断cookie是否存在
2013/11/13 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
Javascript数组中push方法用法分析
2016/10/31 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
2016/12/27 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
Vue 2.0的数据依赖实现原理代码简析
2017/07/10 Javascript
Angular利用内容投射向组件输入ngForOf模板的方法
2018/03/05 Javascript
JavaScript实现区块链
2018/03/14 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
JS开发自己的类库实例分析
2019/08/28 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[02:15]2015国际邀请赛选手档案IG.Ferrari 430
2015/07/30 DOTA
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:EE凭借法力虚空拿下4杀
2017/03/30 DOTA
python分析apache访问日志脚本分享
2015/02/26 Python
用Python读取几十万行文本数据
2018/12/24 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
pandas的resample重采样的使用
2020/04/24 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
python opencv肤色检测的实现示例
2020/12/21 Python
IE9下html5初试小刀
2010/09/21 HTML / CSS
经典c++面试题三
2015/07/08 面试题
如何执行一个shell程序
2012/11/23 面试题
财务出纳员岗位职责
2013/11/26 职场文书
好人好事事迹材料
2014/02/12 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
实习生工作证明范本
2014/09/14 职场文书
2014年人大工作总结
2014/12/10 职场文书
大雁塔导游词
2015/02/04 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang