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截取汉字乱码问题解决方法mb_substr函数的应用
Mar 30 PHP
在项目中寻找代码的坏命名
Jul 14 PHP
codeigniter集成ucenter1.6双向通信的解决办法
Jun 12 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
php防止网站被刷新的方法汇总
Dec 01 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
PHP中使用break跳出多重循环代码实例
Jan 21 PHP
详解EventDispatcher事件分发组件
Dec 25 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
May 15 PHP
PHP 文件上传限制问题
Sep 01 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循环语句笔记(foreach,list)
2011/11/29 PHP
解析php中call_user_func_array的作用
2013/06/07 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
Bootstrap+PHP实现多图上传功能实例详解
2018/04/08 PHP
php自动加载代码实例详解
2021/02/26 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
在js文件中写el表达式取不到值的原因及解决方法
2013/12/23 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
javascript实现简易计算器
2017/02/01 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
用Python编写web API的教程
2015/04/30 Python
python生成n个元素的全组合方法
2018/11/13 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
在pytorch中查看可训练参数的例子
2019/08/18 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
css3的transition属性详解
2014/12/15 HTML / CSS
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
最新离婚协议书范本
2014/08/19 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
计算机考试作弊检讨书1000字
2015/01/01 职场文书
房产电话营销开场白
2015/05/29 职场文书
离职信范本
2015/06/23 职场文书
整脏治乱工作简报
2015/07/21 职场文书
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis