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 相关文章推荐
php5数字型字符串加解密代码
Apr 24 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
完美的2个php检测字符串是否是utf-8编码函数分享
Jul 28 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
php绘图之在图片上写中文和英文的方法
Jan 24 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
Jul 29 PHP
php删除数组指定元素实现代码
May 03 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
CentOS7编译安装php7.1的教程详解
Apr 18 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 PHP
PHP与Web页面交互操作实例分析
Jun 02 PHP
php实现微信和支付宝支付的示例代码
Aug 11 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中的socket_read和socket_recv区别详解
2015/02/09 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
javascript第一课
2007/02/27 Javascript
浅说js变量
2011/05/25 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
asp.net+js实现金额格式化
2015/02/27 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
Angular.js中$apply()和$digest()的深入理解
2016/10/13 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
微信小程序之事件交互操作实例分析
2018/12/03 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
javascrpt密码强度校验函数详解
2020/03/18 Javascript
浅要分析Python程序与C程序的结合使用
2015/04/07 Python
Python实现二叉堆
2016/02/03 Python
python3将视频流保存为本地视频文件
2018/06/20 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
python中dir()与__dict__属性的区别浅析
2018/12/10 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
用python3读取python2的pickle数据方式
2019/12/25 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
佐卡伊官网:中国知名珠宝品牌
2017/02/05 全球购物
DC Shoes官网:美国滑板鞋和服饰品牌
2017/09/03 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
节能减排倡议书
2014/04/15 职场文书
机关作风整顿个人整改措施2014
2014/09/17 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
Python实现批量自动整理文件
2022/03/16 Python