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 相关文章推荐
PHP5中MVC结构学习
Oct 09 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
yii框架builder、update、delete使用方法
Apr 30 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
php递归法读取目录及文件的方法
Jan 30 PHP
ecshop实现smtp发送邮件
Feb 03 PHP
实例讲解yii2.0在php命令行中运行的步骤
Dec 01 PHP
php 猴子摘桃的算法
Jun 20 PHP
PHP文字转图片功能原理与实现方法分析
Aug 31 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
Mar 06 PHP
laravel5.6 框架操作数据 Eloquent ORM用法示例
Jan 26 PHP
详解PHP Swoole与TCP三次握手
May 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
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
Yii调试SQL的常用方法
2014/07/09 PHP
PHP自动重命名文件实现方法
2014/11/04 PHP
ThinkPHP数据操作方法总结
2015/09/28 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
js 文本滚动效果的实例代码
2013/08/17 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
2016/05/24 Javascript
原生js仿jquery一些常用方法(必看篇)
2016/09/20 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
JavaScript实现一个空中避难的小游戏
2017/06/06 Javascript
关于vue单文件中引用路径的处理方法
2018/01/08 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
Node.js + express实现上传大文件的方法分析【图片、文本文件】
2019/03/14 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
上班迟到检讨书
2014/01/10 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
区级文明单位申报材料
2014/05/15 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
普通员工辞职信范文
2015/05/12 职场文书
城南旧事观后感
2015/06/11 职场文书
大学生活感想
2015/08/10 职场文书
2016个人廉洁自律承诺书
2016/03/25 职场文书
分享提高 Python 代码的可读性的技巧
2022/03/03 Python
Docker与K8s关系介绍不会Docker也可以使用K8s
2022/06/25 Servers
MySQL分布式恢复进阶
2022/07/23 MySQL