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下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
PHP Token(令牌)设计
Mar 15 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
Apr 26 PHP
php顺序查找和二分查找示例
Mar 27 PHP
Laravel 4 初级教程之Pages、表单验证
Oct 30 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
Jul 06 PHP
php 问卷调查结果统计
Oct 08 PHP
php 三元运算符实例详细介绍
Dec 15 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP赋值的内部是如何跑的详解
Jan 13 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 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.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
在PHP中运行Linux命令并启动SSH服务的例子
2014/06/12 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
2016/11/17 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
javascript[js]获取url参数的代码
2007/10/17 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
extjs grid设置某列背景颜色和字体颜色的实现方法
2010/09/06 Javascript
点击按钮自动加关注的代码(sina微博/QQ空间/人人网/腾讯微博)
2014/01/02 Javascript
jquery解析JSON数据示例代码
2014/03/17 Javascript
解决jquery版本冲突的有效方法
2014/09/02 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
解决Extjs下拉框不显示的问题
2017/06/21 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
详解处理bootstrap4不支持远程静态框问题
2018/07/20 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python基于ID3思想的决策树
2018/01/03 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
C#的几个面试问题
2016/05/22 面试题
争先创优演讲稿
2014/09/15 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
鸦片战争观后感
2015/06/09 职场文书
2016年“世界气象日”广播稿
2015/12/17 职场文书
《落花生》教学反思
2016/02/16 职场文书