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 中使用随机数的三个步骤
Oct 09 PHP
简体中文转换为繁体中文的PHP函数
Oct 09 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
使用NetBeans + Xdebug调试PHP程序的方法
Apr 12 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
PHP结合Mysql数据库实现留言板功能
Mar 04 PHP
CI框架的安全性分析
May 18 PHP
基于Swoole实现PHP与websocket聊天室
Aug 03 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
Yii2结合Workerman的websocket示例详解
Sep 10 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
深入了解php4(2)--重访过去
2006/10/09 PHP
数据库的日期格式转换
2006/10/09 PHP
笑谈配置,使用Smarty技术
2007/01/04 PHP
动易数据转成dedecms的php程序
2007/04/07 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
基于wordpress主题制作的具体实现步骤
2013/05/10 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
从零开始学习jQuery (六) jquery中的AJAX使用
2011/02/23 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
JavaScript实现twitter puddles算法实例
2014/12/06 Javascript
基于jquery和svg实现超炫酷的动画特效
2014/12/09 Javascript
Bootstrap基本样式学习笔记之表格(2)
2016/12/07 Javascript
ES6中Proxy与Reflect实现重载(overload)的方法
2017/03/30 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
vue 中的动态传参和query传参操作
2020/11/09 Javascript
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python使用正则表达式获取网页中所需要的信息
2018/01/29 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Django中的静态文件管理过程解析
2019/08/01 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
Django实现微信小程序支付的示例代码
2020/09/03 Python
Python远程linux执行命令实现
2020/11/11 Python
历史专业毕业生的自我鉴定
2013/11/15 职场文书
竟聘演讲稿范文
2013/12/31 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
网络技术专业求职信
2014/05/02 职场文书
给老婆的检讨书
2015/01/27 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
Nginx + consul + upsync 完成动态负载均衡的方法详解
2021/03/31 Servers
关于React Native使用axios进行网络请求的方法
2021/08/02 Javascript
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js