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
通过文字传递创建的图形按钮
Oct 09 PHP
PHP 文件上传功能实现代码
Jun 24 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
Oct 15 PHP
php实现读取手机客户端浏览器的类
Jan 09 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
php使用gzip压缩传输js和css文件的方法
Jul 29 PHP
php+MySQL实现登录时验证登录名和密码是否正确
May 10 PHP
YII分模块加载路由的实现方法
Oct 01 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
Dec 25 PHP
php去除deprecated的实例方法
Nov 17 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下通过file_get_contents的代理使用方法
2011/02/16 PHP
解析PHP中的正则表达式以及模式匹配
2013/06/19 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php学习笔记之基础知识
2014/11/08 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
jQuery链使用指南
2015/01/20 Javascript
学习JavaScript设计模式之中介者模式
2016/01/14 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
关于Python中Inf与Nan的判断问题详解
2017/02/08 Python
python基本语法练习实例
2017/09/19 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
python3读取autocad图形文件.py实例
2020/06/05 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
纪念建党演讲稿范文
2014/01/13 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
2014中考励志标语
2014/06/05 职场文书
质量保证书
2015/01/17 职场文书
安全保证书怎么写
2015/02/28 职场文书
茶花女读书笔记
2015/06/29 职场文书
标会主持词应该怎么写?
2019/08/15 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
详解Javascript实践中的命令模式
2021/05/05 Javascript