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 imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
PHP面向对象法则
Feb 23 PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 PHP
推荐几个开源的微信开发项目
Dec 28 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
PHP编写RESTful接口的方法
Feb 21 PHP
php提交过来的数据生成为txt文件
Apr 28 PHP
Yii2中SqlDataProvider用法示例
Sep 22 PHP
php+mysql+jquery实现日历签到功能
Feb 27 PHP
PHP排序算法之归并排序(Merging Sort)实例详解
Apr 21 PHP
PHP实现登录验证码校验功能
May 17 PHP
php中钩子(hook)的原理与简单应用demo示例
Sep 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基础陷阱题(变量赋值)
2012/09/12 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
2015/01/22 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
2019/02/08 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
js函数调用常用方法详解
2012/12/03 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
实例讲解javascript注册事件处理函数
2016/01/09 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
使用vue构建多页面应用的示例
2020/10/22 Javascript
python获取文件后缀名及批量更新目录下文件后缀名的方法
2014/11/11 Python
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
Python探索之自定义实现线程池
2017/10/27 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
python安装及变量名介绍详解
2020/12/12 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
2016/05/03 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
2019/04/28 HTML / CSS
什么是事务?事务有哪些性质?
2012/03/11 面试题
.NET是怎么支持多种语言的
2015/02/24 面试题
银行实习自我鉴定
2013/10/12 职场文书
农场厂长岗位职责
2013/12/28 职场文书
文明礼仪小标兵事迹
2014/01/12 职场文书
党务公开方案
2014/05/06 职场文书
小学优秀班集体申报材料
2014/05/25 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
如何通过一篇文章了解Python中的生成器
2022/04/02 Python
详解MySQL的内连接和外连接
2023/05/08 MySQL