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+DBM的同学录程序(4)
Oct 09 PHP
全世界最小的php网页木马一枚 附PHP木马的防范方法
Oct 09 PHP
如何使用php输出时间格式
Aug 31 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
Oct 16 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
Aug 21 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
php 特殊字符处理函数
2008/09/05 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
PHP字符串长度计算 - strlen()函数使用介绍
2013/10/15 PHP
php对称加密算法示例
2014/05/07 PHP
smarty表格换行实例
2014/12/15 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
基于CI框架的微信网页授权库示例
2016/11/25 PHP
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
js onload事件不起作用示例分析
2013/10/09 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
js中遍历Map对象的简单实例
2016/08/08 Javascript
微信小程序开发一键登录 获取session_key和openid实例
2016/11/23 Javascript
jQuery页面弹出框实现文件上传
2017/02/09 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
angularjs实现table表格td单元格单击变输入框/可编辑状态示例
2019/02/21 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
ESLint 是如何检查 .vue 文件的
2020/11/30 Vue.js
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
django的ORM操作 增加和查询
2019/07/26 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
销售主管岗位职责范本
2014/02/14 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
MySQL 数据表操作
2022/05/04 MySQL
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
2022/07/15 Servers