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
phpMyAdmin下载、安装和使用入门教程
May 31 PHP
PHP session有效期问题
Apr 26 PHP
php面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
phpMyadmin 用户权限中英对照
Apr 02 PHP
PHP连接Nginx服务器并解析Nginx日志的方法
Aug 16 PHP
php验证码的制作思路和实现方法
Nov 12 PHP
PHP编程中的__clone()方法使用详解
Nov 27 PHP
详解PHP处理密码的几种方式
Nov 30 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
Thinkphp 框架配置操作之配置加载与读取配置实例分析
May 15 PHP
is_file和file_exists效率比较
Mar 14 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
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
运用JQuery的toggle实现网页加载完成自动弹窗
2014/03/18 Javascript
jQuery中slideUp()方法用法分析
2014/12/24 Javascript
JavaScript随机生成颜色的方法
2016/10/15 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
原生js实现轮播图的示例代码
2017/02/20 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
[00:32]2018DOTA2亚洲邀请赛OpTic出场
2018/04/03 DOTA
python在linux中输出带颜色的文字的方法
2014/06/19 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python得到电脑的开机时间方法
2018/10/15 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
蹦床仓库:Trampoline Warehouse
2018/12/06 全球购物
环境科学毕业生自荐信
2013/11/21 职场文书
个人教师自我评价范文
2013/12/02 职场文书
应届大学生求职信
2014/07/20 职场文书
青年标兵事迹材料
2014/08/16 职场文书
校本研修个人总结
2015/02/28 职场文书
Win7/8.1用户可以免费升级到Windows 11系统吗?
2021/11/21 数码科技
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript