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+mysql分页代码详解
Mar 27 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
关于svn冲突的解决方法
Jun 21 PHP
CURL状态码列表(详细)
Jun 27 PHP
PHP嵌套输出缓冲代码实例
May 12 PHP
PHP常用工具类大全附全部代码下载
Dec 07 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
May 17 PHP
PHP 7.1新特性的汇总介绍
Dec 16 PHP
PHP中number_format()函数的用法讲解
Apr 08 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
WINDOWS服务器安装多套PHP的另类解决方案
2006/10/09 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
2014/06/26 PHP
php面向对象值单例模式
2016/05/03 PHP
jquery 模板的应用示例
2013/11/12 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
浅谈Angular4实现热加载开发旅程
2017/09/08 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
纯js实现隔行变色效果
2017/11/29 Javascript
实例详解vue.js浅度监听和深度监听及watch用法
2018/08/16 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
JSON 入门教程基础篇 json入门学习笔记
2020/09/22 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
简化Python的Django框架代码的一些示例
2015/04/20 Python
详解python中的文件与目录操作
2017/07/11 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
整理HTML5移动端开发的常用触摸事件
2016/04/15 HTML / CSS
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
学校经典推荐信
2013/10/30 职场文书
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
预防传染病方案
2014/06/14 职场文书
小学生通知书评语
2014/12/31 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
教学质量月活动总结
2015/05/11 职场文书
雷锋之歌观后感
2015/06/10 职场文书
2016中秋节问候语
2015/11/11 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书