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 相关文章推荐
资料注册后发信小技巧
Oct 09 PHP
?生?D片??C字串
Dec 06 PHP
PHP $_SERVER详解
Jan 16 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP获取客户端真实IP地址的5种情况分析和实现代码
Jul 08 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
php检测url是否存在的方法
Apr 14 PHP
Linux系统递归生成目录中文件的md5的方法
Jun 29 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
Laravel Validator 实现两个或多个字段联合索引唯一
May 08 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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中$_SERVER的详细参数与说明
2008/07/29 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
PHP时间戳与日期之间转换的实例介绍
2013/04/19 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
jQuery实现单行文字间歇向上滚动源代码
2013/06/02 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
JavaScript Promise 用法
2016/06/14 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
微信小程序 支付简单实例及注意事项
2017/01/06 Javascript
Javascript中的神器——Promise
2017/02/08 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
2017/06/26 jQuery
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
python自动化测试之setUp与tearDown实例
2014/09/28 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
安装dbus-python的简要教程
2015/05/05 Python
Python中取整的几种方法小结
2017/01/06 Python
Windows下python3.6.4安装教程
2018/07/31 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python 判断一组数据是否符合正态分布
2020/09/23 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
2020/11/24 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
电子商务应届生自我鉴定
2014/01/13 职场文书
幼儿园毕业家长感言
2014/02/10 职场文书
调解协议书
2014/04/16 职场文书
小学生操行评语大全
2014/04/22 职场文书
路政管理求职信
2014/06/18 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
Redis实现一个账号只能登录一个设备
2022/04/19 Redis