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 相关文章推荐
如何删除多级目录
Oct 09 PHP
dedecms系统常用术语汇总
Apr 03 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
又一个php 分页类实现代码
Dec 03 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
php 数组使用详解 推荐
Jun 02 PHP
一个典型的PHP分页实例代码分享
Jul 28 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php中smarty实现多模版网站的方法
Jun 11 PHP
PHP开发Apache服务器配置
Jul 15 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
基于PHP实现生成随机水印图片
Dec 09 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
JAVA/JSP学习系列之二
2006/10/09 PHP
PHP学习之输出字符串(echo,print,printf,print_r和var_dump)
2011/04/17 PHP
解析PHP自带的进位制之间的转换函数
2013/06/08 PHP
关于PHP自动判断字符集并转码的详解
2013/06/26 PHP
PHP实现微信发红包程序
2015/08/24 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
js新闻滚动 js如何实现新闻滚动效果
2013/01/07 Javascript
js渐变显示渐变消失示例代码
2013/08/01 Javascript
js document.write()使用介绍
2014/02/21 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
vue之数据交互实例代码
2017/06/20 Javascript
JS实现标签滚动切换效果
2017/12/25 Javascript
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
vue基于better-scroll仿京东分类列表
2020/06/30 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
Python中使用select模块实现非阻塞的IO
2015/02/03 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
keras实现图像预处理并生成一个generator的案例
2020/06/17 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
会话Bean的种类
2013/11/07 面试题
公开承诺书格式
2014/05/21 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
单位租房协议范本
2014/12/03 职场文书
2019大学生预备党员转正思想汇报
2019/06/21 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS