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 Cookie的一个使用注意点
Nov 08 PHP
php adodb连接不同数据库
Mar 19 PHP
php 转换字符串编码 iconv与mb_convert_encoding的区别说明
Nov 10 PHP
php分页代码学习示例分享
Feb 20 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
php源码分析之DZX1.5随机数函数random用法
Jun 17 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
php中的buffer缓冲区用法分析
May 31 PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 PHP
Yii2 queue的队列使用详解
Jul 19 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 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输出图像的方法实例分析
2017/02/16 PHP
php高清晰度无损图片压缩功能的实现代码
2018/12/09 PHP
php判断某个方法是否存在函数function_exists (),method_exists()与is_callable()区别与用法解析
2020/04/20 PHP
枚举JavaScript对象的函数
2006/12/22 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
利用jquery操作select下拉列表框的代码
2010/06/04 Javascript
JS的replace方法详细介绍
2012/11/09 Javascript
javascript数组遍历for与for in区别详解
2014/12/04 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
jQuery Easyui Datagrid实现单行的上移下移及保存移动的结果
2016/08/15 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
JavaScript简单实现合并两个Json对象的方法示例
2017/10/16 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
微信小程序批量上传图片到七牛(推荐)
2019/12/19 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
python实现清屏的方法
2015/04/30 Python
pandas factorize实现将字符串特征转化为数字特征
2019/12/19 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
美术教师岗位职责
2014/03/18 职场文书
期末学生评语大全
2014/04/24 职场文书
领导班子自我剖析材料
2014/08/16 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
确保减税降费落地生根,用实实在在措施
2019/07/19 职场文书
导游词之张家口
2019/12/13 职场文书