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 相关文章推荐
真正面向对象编程:PHP5.01发布
Oct 09 PHP
一个可查询所有表的“通用”查询分页类
Oct 09 PHP
PHP自动更新新闻DIY
Oct 09 PHP
php反弹shell实现代码
Apr 22 PHP
PHP 页面编码声明方法详解(header或meta)
Mar 12 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
Apr 22 PHP
PHP设计模式之装饰者模式
Feb 29 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
Symfony2开发之控制器用法实例分析
Feb 05 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
jQuery判断div随滚动条滚动到一定位置后停止
2014/04/02 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
JS随机密码生成算法
2019/09/23 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
python之import机制详解
2014/07/03 Python
Python操作MongoDB数据库的方法示例
2018/01/04 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python Tkinter版学生管理系统
2019/02/20 Python
python自动点赞功能的实现思路
2020/02/26 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
2020/07/14 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
成语的广告词
2014/03/19 职场文书
项目合作意向书范本
2014/04/01 职场文书
药品业务员岗位职责
2014/04/17 职场文书
学生抄袭作业的检讨书
2014/10/02 职场文书
房屋产权共有协议书范本
2014/11/03 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python
业余无线电通联Q语
2022/02/18 无线电