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用户指南-cookies部分
Oct 09 PHP
PHP+AJAX实现无刷新注册(带用户名实时检测)
Dec 02 PHP
fleaphp crud操作之find函数的使用方法
Apr 23 PHP
spl_autoload_register与autoload的区别详解
Jun 03 PHP
PHP常用正则表达式集锦
Aug 17 PHP
php魔术变量用法实例详解
Nov 13 PHP
PHP模拟QQ登录的方法
Jul 29 PHP
php经典算法集锦
Nov 14 PHP
PHP中抽象类和抽象方法概念与用法分析
May 24 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
PHP生成随机数的方法总结
Mar 01 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 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
投票管理程序
2006/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
php的大小写敏感问题整理
2011/12/29 PHP
国外PHP程序员的13个好习惯小结
2012/02/20 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
js 中将多个逗号替换为一个逗号的代码
2014/06/07 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
javascript中select下拉框的用法总结
2016/01/07 Javascript
jQuery插件简单学习实例教程
2016/07/01 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
浅谈Vue中render中的h箭头函数
2019/11/07 Javascript
Python中实现参数类型检查的简单方法
2015/04/21 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python实现的爬虫刷回复功能示例
2018/06/07 Python
python实现飞机大战微信小游戏
2020/03/21 Python
python实现图片转字符小工具
2019/04/30 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
父母寄语大全
2014/04/12 职场文书
技术合作协议书范本
2014/04/18 职场文书
幼儿园教师节演讲稿
2014/09/03 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
写给医院的感谢信
2015/01/22 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
《我们的民族小学》教学反思
2016/02/19 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL