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技术开发技巧分享
Mar 23 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
Oct 19 PHP
PHP开发中的错误收集,不定期更新。
Feb 03 PHP
php cc攻击代码与防范方法
Oct 18 PHP
基于header的一些常用指令详解
Jun 06 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
PHP获取photoshop写入图片文字信息的方法
Mar 31 PHP
php生成curl命令行的方法
Dec 14 PHP
详解PHP中foreach的用法和实例
Oct 25 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
TP5框架页面跳转样式操作示例
Apr 05 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
PHP 模拟$_PUT实现代码
2010/03/15 PHP
初步介绍PHP扩展开发经验分享
2012/09/06 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
PHP关于IE下的iframe跨域导致session丢失问题解决方法
2013/10/10 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
js 判断一组日期是否是连续的简单实例
2016/07/11 Javascript
Highcharts入门之简介
2016/08/02 Javascript
简单的js表格操作
2016/09/24 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
webpack之devtool详解
2018/02/10 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[56:47]Ti4 循环赛第三日 iG vs Liquid
2014/07/12 DOTA
跟老齐学Python之坑爹的字符编码
2014/09/28 Python
Python中使用copy模块实现列表(list)拷贝
2015/04/14 Python
Python 正则表达式匹配字符串中的http链接方法
2018/12/25 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
使用pandas 将DataFrame转化成dict
2019/12/10 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
工商企业管理应届生求职信
2013/11/03 职场文书
人事主管的岗位职责
2013/11/16 职场文书
读书心得体会
2013/12/28 职场文书
大学生军训自我鉴定范文
2014/09/18 职场文书
党的群众路线教育实践活动自我剖析材料
2014/10/08 职场文书
党建工作整改措施
2014/10/28 职场文书
小学数学教学随笔
2015/08/14 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS