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 获取远程文件内容的函数代码
Mar 24 PHP
ThinkPHP之getField详解
Jun 20 PHP
ThinkPHP页面跳转success与error方法概述
Jun 25 PHP
php中file_get_contents与curl性能比较分析
Nov 08 PHP
php简单图像创建入门实例
Jun 10 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
php中实现进程锁与多进程的方法
Sep 18 PHP
smarty模板数学运算示例
Dec 11 PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 PHP
PHP 7安装使用体验之性能大提升,兼容性强,扩展支持不够(升级PHP要谨慎)
Jul 27 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
Jul 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
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
2013/06/28 PHP
php生成curl命令行的方法
2015/12/14 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
js导出txt示例代码
2014/01/14 Javascript
使用javascript做的一个随机点名程序
2014/02/13 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
js使用generator函数同步执行ajax任务
2017/09/05 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
JS实现给数组对象排序的方法分析
2019/06/24 Javascript
element-ui中Table表格省市区合并单元格的方法实现
2019/08/07 Javascript
node.js处理前端提交的GET请求
2019/08/30 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
python计算文本文件行数的方法
2015/07/06 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
美国在线家具网站:GDFStudio
2021/03/13 全球购物
高校学生干部的自我评价分享
2013/11/04 职场文书
咖啡店自主创业商业计划书
2014/01/22 职场文书
大三学习计划书范文
2014/05/02 职场文书
2014年保育员工作总结
2014/12/02 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
社区重阳节活动总结
2015/03/24 职场文书
推销搭讪开场白
2015/05/28 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书