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 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
php下连接ftp实现文件的上传、下载、删除文件实例代码
Jun 03 PHP
php数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
zf框架db类的分页示例分享
Mar 14 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
thinkphp多层MVC用法分析
Dec 30 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
May 08 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
Aug 15 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 PHP
PHP文件操作简单介绍及函数汇总
Dec 11 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实现数字补零功能的2个函数介绍
2014/05/12 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
js window.event对象详尽解析
2009/02/17 Javascript
javascript下判断一个元素是否存在的代码
2010/03/05 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
JavaScript 浏览器兼容性总结及常用浏览器兼容性分析
2016/03/30 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
AngularJS基础 ng-include 指令示例讲解
2016/08/01 Javascript
微信小程序前端源码逻辑和工作流
2016/09/25 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
Node.js简单入门前传
2017/08/21 Javascript
微信小程序签到功能
2018/10/31 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
vue 虚拟DOM的原理
2020/10/03 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[55:39]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第二场 1月19日
2021/03/11 DOTA
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
基于Python获取城市近7天天气预报
2019/11/26 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
使用Keras 实现查看model weights .h5 文件的内容
2020/06/09 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
沙特阿拉伯家用电器和电子产品购物网站:Sheta and Saif
2020/04/03 全球购物
机电专业毕业生求职信
2013/10/27 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
公司试用期员工自我评价
2014/09/17 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
JavaScript实现简单的音乐播放器
2022/08/14 Javascript