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 相关文章推荐
从零开始 教你如何搭建Discuz!4.1论坛
Jul 07 PHP
vBulletin HACK----关于排版的两个HACK
Oct 09 PHP
php学习之数据类型之间的转换介绍
Jun 09 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
php中3种方法删除字符串中间的空格
Mar 10 PHP
php的ZipArchive类用法实例
Oct 20 PHP
如何使用PHP Embed SAPI实现Opcodes查看器
Nov 10 PHP
php防止CC攻击代码 php防止网页频繁刷新
Dec 21 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
Aug 21 PHP
PHP类相关知识点实例总结
Sep 28 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
Laravel框架自定义验证过程实例分析
Feb 01 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设计模式之注册树模式分析
2018/01/26 PHP
详解php命令注入攻击
2019/04/06 PHP
accesskey 提交
2006/06/26 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
详解Node.Js如何处理post数据
2016/09/19 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
vue-router 中 meta的用法详解
2019/11/01 Javascript
js 对象使用的小技巧实例分析
2019/11/08 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
python使用7z解压apk包的方法
2015/04/18 Python
python使用xlrd模块读写Excel文件的方法
2015/05/06 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
python实现requests发送/上传多个文件的示例
2018/06/04 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
python实现按首字母分类查找功能
2019/10/31 Python
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
自主招生推荐信范文
2014/05/10 职场文书
安全生产承诺书范文
2014/05/22 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
学习十八大演讲稿
2014/09/15 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
2014年教研室工作总结
2014/12/06 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
尝试使用Python爬取城市租房信息
2022/04/12 Python
postgresql如何找到表中重复数据的行并删除
2023/05/08 MySQL