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 相关文章推荐
初学CAKEPHP 基础教程
Nov 02 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
PHP版微信第三方实现一键登录及获取用户信息的方法
Oct 14 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
php使用QueryList轻松采集js动态渲染页面方法
Sep 11 PHP
PHP正则表达式笔记与实例详解
May 09 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
PHP替换Word中变量并导出PDF图片的实现方法
Nov 26 PHP
windows系统php环境安装swoole具体步骤
Mar 04 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中eclipse 用空格替换 tab键
2013/06/24 PHP
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
2011/01/12 Javascript
分享精心挑选的12款优秀jQuery Ajax分页插件和教程
2012/08/09 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
javascript中的后退和刷新实现方法
2016/11/10 Javascript
详解JavaScript树结构
2017/01/09 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
jQuery手风琴的简单制作
2017/05/12 jQuery
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
微信小程序商品到详情的实现
2017/06/27 Javascript
js实现3D旋转效果
2020/08/18 Javascript
使用70行Python代码实现一个递归下降解析器的教程
2015/04/17 Python
python实现朴素贝叶斯分类器
2018/03/28 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
Python json模块与jsonpath模块区别详解
2020/03/05 Python
Django 删除upload_to文件的步骤
2020/03/30 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
使用Python pip怎么升级pip
2020/08/11 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
python regex库实例用法总结
2021/01/03 Python
美国领先的奢侈美容零售商:Bluemercury
2017/07/26 全球购物
马来西亚最大的在线隐形眼镜商店:MrLens
2019/03/27 全球购物
澳洲网红粉泥面膜:Sand & Sky
2019/08/13 全球购物
前台文员岗位职责及工作流程
2013/11/19 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
工程造价专业求职信
2014/07/17 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2015年法务工作总结范文
2015/05/23 职场文书
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python