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 上传功能实例代码
Apr 13 PHP
PHP is_dir() 判断给定文件名是否是一个目录
May 10 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
Jun 27 PHP
php防止sql注入代码实例
Dec 18 PHP
php使用date和strtotime函数输出指定日期的方法
Nov 14 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
php常用字符串比较函数实例汇总
Nov 24 PHP
PHP5.3以上版本安装ZendOptimizer扩展
Mar 27 PHP
PHP PDOStatement::rowCount讲解
Feb 01 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
tp5 sum某个字段相加得到总数的例子
Oct 18 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
Jquery easyui开启行编辑模式增删改操作
2016/01/14 Javascript
Jquery组件easyUi实现表单验证示例
2016/08/23 Javascript
Angular和百度地图的结合实例代码
2016/10/19 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
angular过滤器实现排序功能
2017/06/27 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
微信小程序实现滑动翻页效果(完整代码)
2019/12/06 Javascript
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
Python字符串匹配算法KMP实例
2015/07/18 Python
python算法演练_One Rule 算法(详解)
2017/05/17 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
使用Django搭建一个基金模拟交易系统教程
2019/11/18 Python
俄罗斯Sportmarket体育在线商店:用于旅游和户外活动
2019/11/12 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
高中生班主任评语
2014/04/25 职场文书
社会工作专业求职信
2014/07/15 职场文书
趣味运动会加油词
2015/07/18 职场文书
计算机实训心得体会
2016/01/14 职场文书
python通过函数名调用函数的几种方法总结
2021/06/07 Python