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速度全攻略
Oct 09 PHP
php.ini中的php-5.2.0配置指令详解
Mar 27 PHP
深入extjs与php参数交互的详解
Jun 25 PHP
phpExcel中文帮助手册之常用功能指南
Aug 18 PHP
PHP开发框架laravel安装与配置教程
Mar 13 PHP
PHP连接access数据库
Mar 27 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
PHP编程获取各个时间段具体时间的方法
May 26 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 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
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php 上一篇,下一篇文章实现代码与原理说明
2010/05/09 PHP
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
PHP经典面试题集锦
2015/03/19 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
JS与框架页的操作代码
2010/01/17 Javascript
javascript的字符串按引用复制和传递,按值来比较介绍与应用
2012/12/28 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
JavaScript中获取鼠标位置相关属性总结
2014/10/11 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
vue项目移动端实现ip输入框问题
2019/03/19 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
详解vue 组件
2020/06/11 Javascript
Python切片用法实例教程
2014/09/08 Python
Python中的生成器和yield详细介绍
2015/01/09 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
windows下python安装pip方法详解
2020/02/10 Python
pytorch掉坑记录:model.eval的作用说明
2020/06/23 Python
python db类用法说明
2020/07/07 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
Python如何实现机器人聊天
2020/09/10 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
商场消防演习方案
2014/02/12 职场文书
师德演讲稿范文
2014/05/06 职场文书
法定代表人授权委托书
2014/09/19 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书