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极大的增强功能和性能
Oct 09 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
php 文章采集正则代码
Dec 28 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
session 加入redis的实现代码
Jul 15 PHP
PHP快速排序quicksort实例详解
Sep 28 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
PHP实现模拟http请求的方法分析
Dec 20 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
php经典趣味算法实例代码
Jan 21 PHP
通过实例解析PHP数据类型转换方法
Jul 11 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语法速查表
2007/01/02 PHP
附件名前加网站名
2008/03/23 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP基础知识介绍
2013/09/17 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
2016/02/01 PHP
javascript自适应宽度的瀑布流实现思路
2013/02/20 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
nodejs实现发出蜂鸣声音(系统报警声)的方法
2017/01/18 NodeJs
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
基于iScroll实现内容滚动效果
2018/03/21 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
nodejs基础之常用工具模块util用法分析
2018/12/26 NodeJs
js中的this的指向问题详解
2019/08/29 Javascript
Vue中keep-alive组件作用详解
2020/02/04 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
2020/03/17 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
Python字符串特性及常用字符串方法的简单笔记
2016/01/04 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
python反转列表的三种方式解析
2019/11/08 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
室内设计自我鉴定
2013/10/15 职场文书
运动会解说词50字
2014/01/18 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
离婚协议书格式
2015/01/26 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
golang特有程序结构入门教程
2021/06/02 Python
MySQL不使用order by实现排名的三种思路总结
2021/06/02 MySQL