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 相关文章推荐
一个很方便的 XML 类!!原创的噢
Oct 09 PHP
一个php作的文本留言本的例子(四)
Oct 09 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
一步一步学习PHP(5) 类和对象
Feb 16 PHP
微盾PHP脚本加密专家php解密算法
Sep 13 PHP
PHP可变函数的使用详解
Jun 14 PHP
解析Linux下Varnish缓存的配置优化
Jun 20 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
php获取文件名后缀常用方法小结
Feb 24 PHP
php实现微信模板消息推送
Mar 30 PHP
PHP使用HTML5 FormData对象提交表单操作示例
Jul 02 PHP
PHP设计模式(四)原型模式Prototype实例详解【创建型】
May 02 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生成和获取XML格式数据的方法
2016/03/04 PHP
php利用header函数下载各种文件
2016/08/24 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
一实用的实现table排序的Javascript类库
2007/09/12 Javascript
javascript URL锚点取值方法
2009/02/25 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
js展开闭合效果演示代码
2013/07/24 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
Bootstrap3.0建站教程(一)之bootstrap表单元素排版
2016/06/01 Javascript
JS控制div跳转到指定的位置的几种解决方案总结
2016/11/05 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
py中的目录与文件判别代码
2008/07/16 Python
PyCharm配置mongo插件的方法
2018/11/30 Python
python操作kafka实践的示例代码
2019/06/19 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
详解解决jupyter不能使用pytorch的问题
2021/02/18 Python
详解纯CSS3制作的20种loading动效
2017/07/05 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
50道外企软件测试面试题
2014/08/18 面试题
DELPHI面试题研发笔试试卷
2015/11/08 面试题
合作经营协议书
2014/04/17 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
拾金不昧感谢信
2015/01/21 职场文书
先进个人总结范文
2015/02/15 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
生死抉择观后感
2015/06/09 职场文书
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python