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 相关文章推荐
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
php 无法加载mcrypt.dll的解决办法
Apr 03 PHP
PHP 文件编程综合案例-文件上传的实现
Jul 03 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
标准PHP的AES加密算法类
Mar 12 PHP
PHP文件读取功能的应用实例
May 08 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
Feb 04 PHP
django中的ajax组件教程详解
Oct 18 PHP
Laravel统计一段时间间隔的数据方法
Oct 09 PHP
Laravel开启跨域请求的方法
Oct 13 PHP
laravel通过a标签从视图向控制器实现传值
Oct 15 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
php 保留字列表
2012/10/04 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
详解php中反射的应用
2016/03/15 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
PHP培训要多少钱
2017/06/06 PHP
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
js下拉框二级关联菜单效果代码具体实现
2013/08/03 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
jQuery插件开发的五种形态小结
2015/03/04 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
理解javascript封装
2016/02/23 Javascript
Bootstrap 粘页脚效果
2016/03/28 Javascript
原生JS实现的多个彩色小球跟随鼠标移动动画效果示例
2018/02/01 Javascript
vue+ts下对axios的封装实现
2020/02/18 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
详解uniapp的全局变量实现方式
2021/01/11 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[55:35]VGJ.S vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Python书单 不将就
2017/07/11 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
基督教婚礼主持词
2014/03/14 职场文书
股权转让意向书
2014/04/01 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
竞选学习委员演讲稿
2014/09/01 职场文书
上课说话检讨书500字
2014/11/01 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
详解Django的MVT设计模式
2021/04/29 Python