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 相关文章推荐
mysql中存储过程、函数的一些问题
Feb 14 PHP
php strlen mb_strlen计算中英文混排字符串长度
Jul 10 PHP
深入解析PHP中的(伪)多线程与多进程
Jul 01 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
PHP中mysql_field_type()函数用法
Nov 24 PHP
Yii分页用法实例详解
Dec 04 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
php格式化时间戳
Dec 17 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
浅谈PHP array_search 和 in_array 函数效率问题
Oct 15 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
php中使用array_filter()函数过滤数组实例讲解
Mar 03 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中使用Oracle数据库(1)
2006/10/09 PHP
我的论坛源代码(二)
2006/10/09 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
javascript中怎么做对象的类型判断
2013/11/11 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
使用JQuery实现Ctrl+Enter提交表单的方法
2015/10/22 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
分享纯手写漂亮的表单验证
2015/11/19 Javascript
举例讲解jQuery对DOM元素的向上遍历、向下遍历和水平遍历
2016/07/07 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
javascript实现下拉菜单效果
2021/02/09 Javascript
JS获取一个字符串中指定字符串第n次出现的位置
2021/02/10 Javascript
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
python飞机大战 pygame游戏创建快速入门详解
2019/12/17 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
数学专业毕业生自荐信
2013/11/10 职场文书
社会实践心得体会
2014/01/03 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
团委书记的竞聘演讲稿
2014/04/24 职场文书
邀请函怎么写
2015/01/30 职场文书
岳麓书院导游词
2015/02/03 职场文书
安全教育主题班会教案
2015/08/12 职场文书
浅析NIO系列之TCP
2021/06/15 Java/Android
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python