php微信开发之图片回复功能


Posted in PHP onJune 14, 2018

本文实例为大家分享了php微信图片回复功能的具体代码,供大家参考,具体内容如下

<?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$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;
        $type = $postObj->MsgType;
        $customrevent = $postObj->Event;
        $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($type=="event" and $customrevent=="subscribe"){
          $contentStr = "33333333333";
          $msgType = "text";
          $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
          echo $resultStr;
          }  
        if($type=="image" ){
          $contentStr = "你的图片很棒!";
          $msgType = "text";
          $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
          echo $resultStr;
          }  

        if(!empty( $keyword ))
        {                
          $msgType = "text";
          if($keyword=="1"){
          $contentStr = "333";}
          if($keyword=="2"){
          $contentStr = "444
          if($keyword=="3"){
          $contentStr = "11";}          
          $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生成EXCEL的东东
Oct 09 PHP
php实现的简单压缩英文字符串的代码
Apr 24 PHP
php array_intersect()函数使用代码
Jan 14 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
php防止sql注入之过滤分页参数实例
Nov 03 PHP
php htmlentities()函数的定义和用法
May 13 PHP
PHP迭代与递归实现无限级分类
Aug 28 PHP
php制作圆形用户头像的实例_自定义封装类源代码
Sep 18 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
Oct 15 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
php微信开发之音乐回复功能
Jun 14 #PHP
php微信开发之关键词回复功能
Jun 13 #PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 #PHP
微信公众号开发之获取位置信息php代码
Jun 13 #PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
Jun 13 #PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 #PHP
thinkphp5.1 文件引入路径问题及注意事项
Jun 13 #PHP
You might like
PHP 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
PHP调试函数和日志记录函数分享
2015/01/31 PHP
PHP编译configure时常见错误的总结
2017/08/17 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
javascript如何创建对象
2016/08/29 Javascript
React教程之Props验证的具体用法(Props Validation)
2017/09/04 Javascript
webpack4打包vue前端多页面项目
2018/09/17 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
[43:43]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第一场 11.22
2020/11/24 DOTA
Python创建文件和追加文件内容实例
2014/10/21 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
Python 绘图库 Matplotlib 入门教程
2018/04/19 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
Django中信号signals的简单使用方法
2019/07/04 Python
Python super()方法原理详解
2020/03/31 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
EJB的基本架构
2016/09/22 面试题
关于旷工的检讨书
2014/02/02 职场文书
租房协议书怎么写
2014/04/10 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
2015年党员公开承诺书范文
2015/01/22 职场文书
公司经营目标责任书
2015/01/29 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
Redis特殊数据类型bitmap位图
2022/06/01 Redis