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中uploaded_files函数使用方法详解
Mar 09 PHP
PHP读取xml方法介绍
Jan 12 PHP
关于PHP自动判断字符集并转码的详解
Jun 26 PHP
PHP中redis的用法深入解析
Feb 20 PHP
php的ZipArchive类用法实例
Oct 20 PHP
PHP提示Warning:phpinfo() has been disabled函数禁用的解决方法
Dec 17 PHP
php简单生成随机数的方法
Jul 30 PHP
php实现Mysql简易操作类
Oct 11 PHP
composer.lock文件的作用
Feb 03 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
Oct 08 PHP
Linux基于php-fpm模式的lamp搭建phpmyadmin的方法
Oct 25 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
PHP与javascript对多项选择的处理
2006/10/09 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
2018/11/22 PHP
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
使用zrender.js绘制体温单效果
2019/10/31 Javascript
JS Generator 函数的含义与用法实例总结
2020/04/08 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[02:02]2018DOTA2亚洲邀请赛Mineski赛前采访
2018/04/04 DOTA
Python threading多线程编程实例
2014/09/18 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
VTK与Python实现机械臂三维模型可视化详解
2017/12/13 Python
Python tkinter事件高级用法实例
2018/01/31 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
使用python创建生成动态链接库dll的方法
2020/05/09 Python
python如何处理程序无法打开
2020/06/16 Python
Python库安装速度过慢解决方案
2020/07/14 Python
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
2014领导班子专题民主生活会对照检查材料思想汇报
2014/09/23 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
Android Rxjava3 使用场景详解
2022/04/07 Java/Android
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL