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 相关文章推荐
计算2000年01月01日起到指定日的天数
Oct 09 PHP
加强版phplib的DB类
Mar 31 PHP
PHP中实现汉字转区位码应用源码实例解析
Jun 14 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
php设置session值和cookies的学习示例
Mar 21 PHP
PHP模板引擎Smarty的缓存使用总结
Apr 24 PHP
php实现编辑和保存文件的方法
Jul 20 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
CI框架的安全性分析
May 18 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
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
一个PHP针对数字的加密解密类
2014/03/20 PHP
PHP错误处理函数
2016/04/03 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
JQuery this 和 $(this) 的区别
2009/08/23 Javascript
Jquery 动态循环输出表格具体方法
2013/11/23 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
2014/03/10 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
JS实现显示带倒影的图片横排居中放大展示特效实例【测试可用】
2016/08/23 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
微信小程序block的使用教程
2018/04/01 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
[07:59]2014DOTA2叨叨刀塔 林熊猫称被邀请赛现场盛况震撼
2014/07/21 DOTA
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
Python字符转换
2008/09/06 Python
Python网络编程 Python套接字编程
2017/09/13 Python
手写一个python迭代器过程详解
2019/08/27 Python
Django框架 查询Extra功能实现解析
2019/09/04 Python
pandas DataFrame运算的实现
2020/06/14 Python
简历中自我评价范文3则
2013/12/14 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
经典禁毒标语
2014/06/16 职场文书
2014超市双十一活动策划方案
2014/09/29 职场文书
公司清洁工岗位职责
2015/04/15 职场文书
Python字符串格式化方式
2022/04/07 Python
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技
Valheim服务器 Mod修改安装教程 【ValheimPlus】
2022/12/24 Servers