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 单引号与双引号的区别
Nov 24 PHP
探讨PHP中OO之静态关键字以及类常量的详解
Jun 07 PHP
PHP中soap的用法实例
Oct 24 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
Nov 29 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
Apr 21 PHP
php获取系统变量方法小结
May 29 PHP
Symfony控制层深入详解
Mar 17 PHP
深入理解PHP类的自动载入机制
Sep 16 PHP
PHP标准类(stdclass)用法示例
Sep 28 PHP
学习thinkphp5.0验证类使用方法
Nov 16 PHP
基于laravel-admin 后台 列表标签背景的使用方法
Oct 03 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
十大催泪虐心动漫电影,有几部你还没看
2020/03/04 日漫
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
在PHP中执行系统外部命令
2006/10/09 PHP
请离开include_once和require_once
2013/07/18 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
laravel实现按时间日期进行分组统计方法示例
2019/03/23 PHP
JavaScript插入动态样式实现代码
2012/02/22 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
JS图片自动轮换效果实现思路附截图
2014/04/30 Javascript
下拉框select的绑定示例
2014/09/04 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
canvas绘制多边形
2017/02/24 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
使用python开发vim插件及心得分享
2014/11/04 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python根据指定日期计算后n天,前n天是哪一天的方法
2018/05/29 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
python中adb有什么功能
2020/06/07 Python
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
2016新年问候语大全
2015/11/11 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
创业计划书之花店
2019/09/20 职场文书