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 相关文章推荐
smarty静态实验表明,网络上是错的~呵呵
Nov 25 PHP
php echo 输出字符串函数详解
May 13 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
php 搜索框提示(自动完成)实例代码
Feb 05 PHP
php+js iframe实现上传头像界面无跳转
Apr 29 PHP
php中adodbzip类实例
Dec 08 PHP
smarty模板引擎中变量及变量修饰器用法实例
Jan 22 PHP
php实现中文转数字
Feb 18 PHP
PHP+shell脚本操作Memcached和Apache Status的实例分享
Mar 11 PHP
PHP-FPM运行状态的实时查看及监控详解
Nov 18 PHP
轻松实现php文件上传功能
Feb 17 PHP
Laravel实现短信注册的示例代码
May 29 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
js模拟类继承小例子
2010/07/17 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
运算符&amp;&amp;的三个不同层次
2013/04/07 Javascript
js获取当前地址 JS获取当前URL的示例代码
2014/02/26 Javascript
深入分析jquery解析json数据
2014/12/09 Javascript
jQuery实现鼠标滑过Div层背景变颜色的方法
2015/02/17 Javascript
javascript实现树形菜单的方法
2015/07/17 Javascript
JS弹出层遮罩,隐藏背景页面滚动条细节优化分析
2016/04/29 Javascript
谈一谈bootstrap响应式布局
2016/05/23 Javascript
jquery延迟对象解析
2016/10/26 Javascript
js实现九宫格的随机颜色跳转
2017/02/19 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
让Vue也可以使用Redux的方法
2018/05/23 Javascript
在vue项目中使用sass语法问题
2019/07/18 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
通过原生vue添加滚动加载更多功能
2019/11/21 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
多种类型jQuery网页验证码插件代码实例
2021/01/09 jQuery
Python 的描述符 descriptor详解
2016/02/27 Python
Python数据类型详解(二)列表
2016/05/08 Python
python下载图片实现方法(超简单)
2017/07/21 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
pandas实现将dataframe满足某一条件的值选出
2019/06/12 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
关于Django Models CharField 参数说明
2020/03/31 Python
Etam德国:内衣精品店
2019/08/25 全球购物
企划经理的岗位职责
2013/11/17 职场文书
党员创先争优承诺书
2014/03/26 职场文书
合伙经营协议书范本
2014/04/18 职场文书
周年庆典答谢词
2015/01/20 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫