php微信开发之关键词回复功能


Posted in PHP onJune 13, 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;
  $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(!empty( $keyword ))
  {
   $msgType = "text";
   if($keyword=="1"){
   $contentStr = "qiphon";}
   if($keyword=="2"){
   $contentStr = "最新资讯:《环境违法行为举报奖励办法》";}
   if($keyword=="3"){
   $contentStr = "31离婚协议\n32租房合同\n33交通事故协议书";}   
   $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 array_pop()数组函数将数组最后一个单元弹出(出栈)
Jul 12 PHP
php _autoload自动加载类与机制分析
Feb 10 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP操作mysql数据库分表的方法
Jun 09 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
php计算给定日期所在周的开始日期和结束日期示例
Feb 06 PHP
php实现网页端验证码功能
Jul 11 PHP
PHP多线程模拟实现秒杀抢单
Feb 07 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 #PHP
微信公众号开发之获取位置信息php代码
Jun 13 #PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 #PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 #PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 #PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 #PHP
php中html_entity_decode实现HTML实体转义
Jun 13 #PHP
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
PHP实现网上点歌(二)
2006/10/09 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
Drupal7中常用的数据库操作实例
2014/03/02 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
实现js保留小数点后N位的代码
2014/11/13 Javascript
jQuery中filter()方法用法实例
2015/01/06 Javascript
javascript委托(Delegate)blur和focus用法实例分析
2015/05/26 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
ES6中Iterator与for..of..遍历用法分析
2017/03/31 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
vue通过接口直接下载java生成好的Excel表格案例
2020/10/26 Javascript
three.js 实现露珠滴落动画效果的示例代码
2021/03/01 Javascript
在Python程序中实现分布式进程的教程
2015/04/28 Python
TensorFlow变量管理详解
2018/03/10 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Django中间件实现拦截器的方法
2018/06/01 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Python经纬度坐标转换为距离及角度的实现
2020/11/01 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
计算机专业毕业生自我鉴定
2014/01/16 职场文书
中国好声音华少广告词
2014/03/17 职场文书
中国入世承诺
2014/04/01 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
妇联主席先进事迹
2014/05/18 职场文书
广播体操口号
2014/06/18 职场文书
redis限流的实际应用
2021/04/24 Redis
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js