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中长文章分页显示实现代码
Sep 29 PHP
深入PHP变量存储的详解
Jun 13 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
PHP下载远程文件到本地存储的方法
Mar 24 PHP
php实现短信发送代码
Jul 05 PHP
php实现网站文件批量压缩下载功能
Oct 28 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
php微信开发之图片回复功能
Jun 14 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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
德生1994机评
2021/03/02 无线电
php INI配置文件的解析实现分析
2011/01/04 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
2011/04/20 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
JavaScript学习笔记之图片库案例分析
2019/01/08 Javascript
详解使用React.memo()来优化函数组件的性能
2019/03/19 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
django的csrf实现过程详解
2019/07/26 Python
python中的&amp;&amp;及||的实现示例
2019/08/07 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
2020/02/16 Python
阿联酋手表和配饰购物网站:Rivolishop
2019/11/25 全球购物
介绍一下JMS编程步骤
2015/09/22 面试题
药剂学专业应届生自荐信
2013/09/29 职场文书
幼儿园庆六一活动方案
2014/03/06 职场文书
公司承诺书格式
2014/05/21 职场文书
企业文化口号
2014/06/12 职场文书
企业消防安全责任书
2014/07/23 职场文书
PySwarms(Python粒子群优化工具包)的使用:GlobalBestPSO例子解析
2021/04/05 Python
PHP连接MSSQL数据库案例,PHPWAMP多个PHP版本连接SQL Server数据库
2021/04/16 PHP
Python合并pdf文件的工具
2021/07/01 Python
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript