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 相关文章推荐
如何做到多笔资料的同步
Oct 09 PHP
一个颜色轮换的简单例子
Oct 09 PHP
PHP用mysql数据库存储session的代码
Mar 05 PHP
php中inlcude()性能对比详解
Sep 16 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
Oct 24 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
PHP文件操作实例总结
Sep 27 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
PHP+Apache环境中如何隐藏Apache版本
Nov 24 PHP
php 读写json文件及修改json的方法
Mar 07 PHP
laravel获取不到session的三种解决办法【推荐】
Sep 16 PHP
YII框架http缓存操作示例
Apr 29 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
实现“上一页”和“下一页按钮
2006/10/09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
2010/05/26 PHP
php实现与erlang的二进制通讯实例解析
2014/07/23 PHP
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
js输入框邮箱自动提示功能代码实现
2013/12/10 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
jQuery+html5+css3实现圆角无刷新表单带输入验证功能代码
2015/08/21 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
微信小程序CSS3动画下拉菜单效果
2018/11/04 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
Python中属性和描述符的正确使用
2016/08/23 Python
Python语言描述随机梯度下降法
2018/01/04 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
pygame游戏之旅 添加icon和bgm音效的方法
2018/11/21 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
Python高阶函数、常用内置函数用法实例分析
2019/12/26 Python
Tensorflow 多线程设置方式
2020/02/06 Python
零基础小白多久能学会python
2020/06/22 Python
让ie浏览器成为支持html5的浏览器的解决方法(使用html5shiv)
2014/04/08 HTML / CSS
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
食品安全汇报材料
2014/08/18 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
学校开学标语
2014/10/06 职场文书
见习报告怎么写
2014/10/31 职场文书
单位考核聘任报告
2015/03/02 职场文书
毕业班工作总结
2015/08/10 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
高考升学宴主持词
2019/06/21 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书
golang 实现对Map进行键值自定义排序
2021/04/28 Golang
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫