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的FTP学习(二)[转自奥索]
Oct 09 PHP
安装APACHE
Jan 15 PHP
PHP session常见问题集锦及解决办法总结
Mar 18 PHP
PHP 图像尺寸调整代码
May 26 PHP
在PHP中实现Javascript的escape()函数代码
Aug 08 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
php获取淘宝分类id示例
Jan 16 PHP
php上传图片之时间戳命名(保存路径)
Aug 15 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
php脚本守护进程原理与实现方法详解
Jul 20 PHP
PHP实现的mysql主从数据库状态检测功能示例
Jul 20 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实现网站插件机制的方法
2009/11/10 PHP
php XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
PHPExcel内存泄漏问题解决方法
2015/01/23 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
JQUERY 浏览器判断实现函数
2009/08/20 Javascript
javascript针对DOM的应用分析(四)
2012/04/15 Javascript
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
jstree创建无限分级树的方法【基于ajax动态创建子节点】
2016/10/25 Javascript
浅谈Vue数据绑定的原理
2018/01/08 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
Vue 实现把表单form数据 转化成json格式的数据
2019/10/29 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
[01:04:35]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第一场
2018/04/04 DOTA
使用Python的Twisted框架实现一个简单的服务器
2015/04/16 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
python实现定时提取实时日志程序
2018/06/22 Python
Python中如何使用if语句处理列表实例代码
2019/02/24 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
重构Python代码的六个实例
2020/11/25 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
中国最大的名表商城:万表网
2016/08/29 全球购物
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
某公司C#程序员面试题笔试题
2014/05/26 面试题
党员2014两会学习心得体会
2014/03/17 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android