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 模拟POST|GET操作实现代码
Jul 20 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
Jun 24 PHP
php实现分页工具类分享
Jan 09 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
PHP使用两个栈实现队列功能的方法
Jan 15 PHP
TP5(thinkPHP5)框架使用ajax实现与后台数据交互的方法小结
Feb 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
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
jquery 可排列的表实现代码
2009/11/13 Javascript
一起来写段JS drag拖动代码
2010/12/09 Javascript
JS面向对象编程浅析
2011/08/28 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
js小数运算出现多位小数如何解决
2015/10/08 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
JS常用字符串方法(推荐)
2021/01/15 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
解决nodejs中使用http请求返回值为html时乱码的问题
2017/02/18 NodeJs
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
react native带索引的城市列表组件的实例代码
2017/08/08 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
2017/11/09 Javascript
详解用JS添加和删除class类名
2019/03/25 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
2019/08/20 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
对python中return和print的一些理解
2017/08/18 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
Flask模板引擎之Jinja2语法介绍
2019/06/26 Python
学python安装的软件总结
2019/10/12 Python
使用Python打造一款间谍程序的流程分析
2020/02/21 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python flask框架端口失效解决方案
2020/06/04 Python
管理学院毕业生自荐信范文
2014/03/10 职场文书
初中学校军训方案
2014/05/09 职场文书
详解Nginx 工作原理
2021/03/31 Servers
如何用python绘制雷达图
2021/04/24 Python