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 相关文章推荐
PHPnow安装服务[apache_pn]失败的问题的解决方法
Sep 10 PHP
从php核心代码分析require和include的区别
Jan 02 PHP
PHP多个版本的分析解释
Jul 21 PHP
PHP 登录记住密码实现思路
May 07 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
解决php表单重复提交实现方法
Sep 29 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
关于ThinkPHP中的异常处理详解
May 11 PHP
Yii2框架实现利用mpdf创建pdf文件功能示例
Feb 08 PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 PHP
PHP论坛实现积分系统的思路代码详解
Jun 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
中国广播史趣谈 — 几个历史第一次
2021/03/01 无线电
PHP 和 MySQL 开发的 8 个技巧
2007/01/02 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
javascript中神奇的 Date对象小结
2017/10/12 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
Node.js API详解之 console模块用法详解
2020/05/12 Javascript
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
对python的输出和输出格式详解
2018/12/08 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
python输入错误后删除的方法
2019/10/12 Python
python基于opencv实现人脸识别
2021/01/04 Python
Python开发.exe小工具的详细步骤
2021/01/27 Python
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
英国在线购买轮胎、预订汽车、汽车维修和装配网站:Protyre
2020/04/12 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
优秀的自荐信要注意哪些
2014/01/03 职场文书
房产委托公证书
2014/04/08 职场文书
医药销售自我评价200字
2014/09/11 职场文书
个人党性分析材料
2014/12/19 职场文书
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python
Spring Boot 实现 WebSocket
2022/04/30 Java/Android
python中 Flask Web 表单的使用方法
2022/05/20 Python