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 相关文章推荐
PHP5在Apache下的两种模式的安装
Sep 05 PHP
wiki-shan写的php在线加密的解密程序
Sep 07 PHP
基于Zend的Captcha机制的应用
May 02 PHP
基于Discuz security.inc.php代码的深入分析
Jun 03 PHP
php实现可用于mysql,mssql,pg数据库操作类
Dec 13 PHP
smarty内置函数section的用法
Jan 22 PHP
php动态生成版权所有信息的方法
Mar 24 PHP
PHP内核学习教程之php opcode内核实现
Jan 27 PHP
一个简单的php路由类
May 29 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
laravel入门知识点整理
Sep 15 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
PHPCMS的使用小结
2010/09/20 PHP
php数据库密码的找回的步骤
2011/01/12 PHP
php安全配置 如何配置使其更安全
2011/12/16 PHP
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
PHP使用Session遇到的一个Permission denied Notice解决办法
2014/07/30 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
2015/01/07 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
详谈Angular路由与Nodejs路由的区别
2017/03/05 NodeJs
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
vue 属性拦截实现双向绑定的实例代码
2018/10/24 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
Python运维之获取系统CPU信息的实现方法
2018/06/11 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
计算机应用与科学个人的自我评价
2013/11/15 职场文书
岗位职责范本
2013/11/23 职场文书
毕业生个人投资创业计划书
2014/01/04 职场文书
致全体运动员广播稿
2014/02/01 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
项目采购员岗位职责
2014/04/15 职场文书
群众路线党员个人剖析材料
2014/10/08 职场文书
2014年党支部工作总结
2014/11/13 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
创业计划书之冷饮店
2019/09/27 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
golang操作rocketmq的示例代码
2022/04/06 Golang