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的十大要点(上)
Feb 04 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
PHP判断是否连接上网络的方法
Jul 01 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
Yii框架中sphinx索引配置方法解析
Oct 18 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
PHP调用接口用post方法传送json数据的实例
May 31 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
Feb 27 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作的文本留言本的例子(二)
2006/10/09 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
20个2014年最优秀的PHP框架回顾
2014/10/22 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
php和nginx交互实例讲解
2019/09/24 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
jQuery中Ajax的get、post等方法详解
2015/01/20 Javascript
js闭包引起的事件注册问题介绍
2016/03/29 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
2018/11/14 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
深入理解python函数递归和生成器
2016/06/06 Python
python 类详解及简单实例
2017/03/24 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
Python实现删除时保留特定文件夹和文件的示例
2018/04/27 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
Python如何生成xml文件
2020/06/04 Python
python3跳出一个循环的实例操作
2020/08/18 Python
python图片合成的示例
2020/11/09 Python
Python中过滤字符串列表的方法
2020/12/22 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
四年大学生活的自我评价范文
2014/02/07 职场文书
世界气象日活动总结
2015/02/27 职场文书
超市食品安全承诺书
2015/04/29 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
《搭石》教学反思
2016/02/18 职场文书