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数据库操作面向对象的优点
Oct 09 PHP
用户的详细注册和判断
Oct 09 PHP
PHP XML操作的各种方法解析(比较详细)
Jun 17 PHP
PHP Directory 函数的详解
Mar 07 PHP
使用php检测用户当前使用的浏览器是否为IE浏览器
Dec 03 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
学习php开源项目的源码指南
Dec 21 PHP
Laravel中使用阿里云OSS Composer包分享
Feb 10 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
PHP微商城开源代码实例
Mar 27 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
德生S2000南麂列岛台湾FM收听记录
2021/03/02 无线电
用PHP和ACCESS写聊天室(六)
2006/10/09 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
php中的异常和错误浅析
2017/05/03 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PHP 观察者模式深入理解与应用分析
2019/09/25 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
解读JavaScript代码 var ie = !-[1,] 最短的IE判定代码
2011/05/28 Javascript
获取客户端电脑日期时间js代码(jquery)
2012/09/12 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jquery实现模拟百分比进度条渐变效果代码
2015/10/29 Javascript
Javascript 基础---Ajax入门必看
2016/07/06 Javascript
用原生js做单页应用
2017/01/17 Javascript
集成vue到jquery/bootstrap项目的方法
2018/02/10 jQuery
vue异步加载高德地图的实现
2018/06/19 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
JavaScript:ES2019 的新特性(译)
2019/08/08 Javascript
[01:52]2020年DOTA2 TI10夏季活动预告片
2020/07/15 DOTA
mac系统安装Python3初体验
2018/01/02 Python
python实现socket+threading处理多连接的方法
2019/07/23 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
python调用win32接口进行截图的示例
2020/11/11 Python
Linux如何为某个操作添加别名
2013/03/01 面试题
高级销售员求职信
2013/10/25 职场文书
毕业自我评价
2014/02/05 职场文书
2014年医学生毕业自我鉴定
2014/03/26 职场文书
校庆活动策划方案
2014/06/05 职场文书
教师工作失职检讨书
2014/09/18 职场文书
工作保证书怎么写
2015/02/28 职场文书
《包身工》教学反思
2016/02/23 职场文书
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL