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下使用无限生命期Session的方法
Mar 16 PHP
封装一个PDO数据库操作类代码
Sep 09 PHP
php时区转换转换函数
Jan 07 PHP
php循环table实现一行两列显示的方法
Jun 04 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
PHP二进制与字符串之间的相互转换教程
Oct 14 PHP
thinkPHP分页功能实例详解
May 05 PHP
php从数据库中获取数据用ajax传送到前台的方法
Aug 20 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
PHP架构及原理知识点详解
Dec 22 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
Feb 27 PHP
PHP7原生MySQL数据库操作实现代码
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 中文乱码解决办法总结分析
2009/07/30 PHP
php长字符串定义方法
2012/07/12 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Yii框架分页技术实例分析
2019/08/30 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
Javascript学习笔记之 对象篇(一) : 对象的使用和属性
2014/06/24 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
python实现巡检系统(solaris)示例
2014/04/02 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python机器学习之SVM支持向量机
2017/12/27 Python
python搜索包的路径的实现方法
2019/07/19 Python
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
能否解释一下XSS cookie盗窃是什么意思
2012/06/02 面试题
药剂专业个人求职信范文
2014/04/29 职场文书
活动总结书
2014/05/08 职场文书
酒店节能减排方案
2014/05/26 职场文书
十周年庆典策划方案
2014/06/03 职场文书
电子信息工程专业求职信
2014/06/28 职场文书
安全保证书
2015/01/16 职场文书
ORACLE查看当前账号的相关信息
2021/06/18 Oracle
MySQL中存储时间的最佳实践指南
2021/07/01 MySQL
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技