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 相关文章推荐
关于IIS php调用com组件的权限问题
Jan 11 PHP
一个非常完美的读写ini格式的PHP配置类分享
Feb 12 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
Dec 07 PHP
PHP获取路径和目录的方法总结【必看篇】
Mar 04 PHP
php+ajax实现异步上传文件或图片功能
Jul 18 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
浅谈laravel orm 中的一对多关系 hasMany
Oct 21 PHP
PHP扩展安装方法步骤解析
Nov 24 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的autoload自动加载机制使用说明
2010/12/28 PHP
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
php开发文档 会员收费1期
2012/08/14 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
php生成微信红包数组的方法
2019/09/05 PHP
javascript document.images实例
2008/05/27 Javascript
jWiard 基于JQuery的强大的向导控件介绍
2011/10/28 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
2013/11/12 Javascript
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
js转换对象为xml
2017/02/17 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
Bootstrap Table使用整理(一)
2017/06/09 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
Python 变量类型详解
2018/10/10 Python
对Django url的几种使用方式详解
2019/08/06 Python
python迭代器常见用法实例分析
2019/11/22 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
公司成立感言
2014/01/11 职场文书
实习鉴定评语
2014/01/19 职场文书
个人承诺书怎么写
2014/05/24 职场文书
垃圾桶标语
2014/06/24 职场文书
计算机应用应届生求职信
2014/07/12 职场文书
Java SSH 秘钥连接mysql数据库的方法
2021/06/28 Java/Android