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 25 PHP
windows xp下安装pear
Dec 02 PHP
php木马攻击防御之道
Mar 24 PHP
定义php常量的详解
Jun 09 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
简单说说PHP优化那些事(经验分享)
Nov 27 PHP
PHP扩展Memcache分布式部署方案
Dec 06 PHP
学习php设计模式 php实现门面模式(Facade)
Dec 07 PHP
ThinkPHP项目分组配置方法分析
Mar 23 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
php数据序列化测试实例详解
Aug 12 PHP
PDO::commit讲解
Jan 27 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(3)
2006/10/09 PHP
收集的PHP中与数组相关的函数
2007/03/22 PHP
php正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
Laravel 4 初级教程之Pages、表单验证
2014/10/30 PHP
脚本收藏iframe
2006/07/21 Javascript
JS加ASP二级域名转向的代码
2007/05/17 Javascript
JavaScript浏览器选项卡效果
2010/08/25 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
浅析jquery与checkbox的checked属性的问题
2016/04/27 Javascript
Angular的$http与$location
2016/12/26 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
vue生命周期实例小结
2018/08/15 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
node事件循环和process模块实例分析
2020/02/14 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
Vue实现返回顶部按钮实例代码
2020/10/21 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
python缩进区别分析
2014/02/15 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
python 如何实现遗传算法
2020/09/22 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
Ticketmaster意大利:音乐会、节日、艺术和剧院的官方门票
2019/12/23 全球购物
linux比较文件内容的命令是什么
2015/09/23 面试题
2014年乡镇妇联工作总结
2014/12/02 职场文书
2014年英语教学工作总结
2014/12/17 职场文书
浅析Python OpenCV三种滤镜效果
2022/04/11 Python