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调用数据库的存贮过程
Oct 09 PHP
PHP脚本中include文件出错解决方法
Nov 20 PHP
数据库查询记录php 多行多列显示
Aug 15 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
php实现专业获取网站SEO信息类实例
Apr 02 PHP
PHP模板引擎smarty详细介绍
May 26 PHP
PHP设计模式之观察者模式实例
Feb 22 PHP
PHP简单日历实现方法
Jul 20 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
php中final关键字用法分析
Dec 07 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
May 13 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下统计用户在线时间的一种尝试
2010/08/26 PHP
解析PHP可变函数的经典用法
2013/06/20 PHP
解析strtr函数的效率问题
2013/06/26 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
php array_values 返回数组的值实例详解
2016/11/17 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
Yii2中datetime类的使用
2016/12/17 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
使用webpack-dev-server处理跨域请求的方法
2018/04/18 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
[01:55]《走出家门看比赛》——DOTA2 2015国际邀请赛同城线下观战
2015/07/18 DOTA
[33:09]完美世界DOTA2联赛循环赛 Forest vs DM BO2第二场 10.29
2020/10/29 DOTA
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python 下载及安装详细步骤
2019/11/04 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
2020/09/28 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
Python列表元素删除和remove()方法详解
2021/01/04 Python
YSL圣罗兰美妆官方旗舰店:购买YSL口红
2018/04/16 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
配置管理计划的主要内容有哪些
2014/06/20 面试题
应届生会计求职信
2013/11/11 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
趣味体育活动方案
2014/02/08 职场文书
主管竞聘书范文
2014/03/31 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
2015年房产经纪人工作总结
2015/05/15 职场文书
教你用Python matplotlib库制作简单的动画
2021/06/11 Python
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
VW、VH适配移动端的解决方案与常见问题
2023/05/21 HTML / CSS