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中intval()等int转换时的意外异常情况
Jun 21 PHP
实测在class的function中include的文件中非php的global全局环境
Jul 15 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP实现对站点内容外部链接的过滤方法
Sep 10 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
php实现把url转换迅雷thunder资源下载地址的方法
Nov 07 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 05 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
PHP判断是否微信访问的方法示例
Mar 27 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 PHP
php无限极分类实现方法分析
Jul 04 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
php中static静态变量的使用方法详解
2010/06/04 PHP
phalcon框架使用指南
2016/02/23 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
AngularJS身份验证的方法
2016/02/17 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
2017/08/17 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
解决vuecli3.0热更新失效的问题
2018/09/19 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
vue实现滑动到底部加载更多效果
2020/10/27 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
python中__call__方法示例分析
2014/10/11 Python
python中的装饰器详解
2015/04/13 Python
你真的了解Python的random模块吗?
2017/12/12 Python
python opencv检测目标颜色的实例讲解
2018/04/02 Python
centos7之Python3.74安装教程
2019/08/15 Python
python图形界面开发之wxPython树控件使用方法详解
2020/02/24 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
解决import tensorflow导致jupyter内核死亡的问题
2021/02/06 Python
python推导式的使用方法实例
2021/02/28 Python
幼儿园实习自我鉴定
2013/12/15 职场文书
机械制造专业个人的自我评价
2013/12/28 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
经理任命书模板
2014/06/06 职场文书
体育运动会广播稿
2014/10/05 职场文书
党支部考察鉴定意见
2015/06/02 职场文书