php微信公众号开发之关键词回复


Posted in PHP onOctober 20, 2018

本文实例为大家分享了php微信公众号开发之关键词回复的具体代码,供大家参考,具体内容如下

目标:

  • 消息回复
  • 关键词回复
  • utf8编码

php微信公众号开发之关键词回复

index.php

<?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "jiekou");
$wechatObj = new wechatCallbackapiTest();
$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";
          switch ($keyword)
          {
          case "1";
          $contentStr = "公司简介!";
          break;
          case "2";
          $contentStr = "最新优惠!";
          break;
          default;
          $contentStr = "欢迎光临!";

          }

          $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来检测proxy
Oct 09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
Aug 12 PHP
PHP正则提取不包含指定网址的图片地址的例子
Apr 21 PHP
php判断数组元素中是否存在某个字符串的方法
Jun 14 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
php的debug相关函数用法示例
Jul 11 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
thinkPHP+mysql+ajax实现的仿百度一下即时搜索效果详解
Jul 15 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
Oct 11 PHP
phpStudy vscode 搭建debug调试的教程详解
Jul 28 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 PHP
php微信公众号开发之图片回复
Oct 20 #PHP
php5.x禁用eval的操作方法
Oct 19 #PHP
django中的ajax组件教程详解
Oct 18 #PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 #PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 #PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 #PHP
PHP使Laravel为JSON REST API返回自定义错误的问题
Oct 16 #PHP
You might like
索尼ICF-SW100收音机评测
2021/03/02 无线电
PHP exif扩展方法开启详解
2014/07/28 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
WordPress过滤垃圾评论的几种主要方法小结
2016/07/11 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
javascript IFrame 强制刷新代码
2009/07/23 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
d3.js实现图形拖拽
2019/12/19 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
[01:08]2014DOTA2展望TI 剑指西雅图LGD战队专访
2014/06/30 DOTA
进一步理解Python中的函数编程
2015/04/13 Python
python黑魔法之编码转换
2016/01/25 Python
实践Vim配置python开发环境
2018/07/02 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
Android面试题及答案
2015/09/04 面试题
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
办公室前台的岗位职责
2013/12/20 职场文书
金融系毕业生自荐书
2014/07/08 职场文书
课外科技活动总结
2014/08/27 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL
优化Mysql查询的示例
2022/04/26 MySQL