php微信开发之图片回复功能

 更新时间:2018年06月14日 10:17:17   转载 作者:qiphon3650  
这篇文章主要为大家详细介绍了php微信开发之图片回复功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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;
    }
  }
}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 对laravel in 查询的使用方法详解

    对laravel in 查询的使用方法详解

    今天小编就为大家分享一篇对laravel in 查询的使用方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • php 读取文件夹下所有图片、文件的实例

    php 读取文件夹下所有图片、文件的实例

    今天小编就为大家分享一篇php 读取文件夹下所有图片、文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • Laravel框架中Blade模板的用法示例

    Laravel框架中Blade模板的用法示例

    Blade 是 laravel 提供的一个简单强大的模板引擎,下面这篇文章主要给大家介绍了关于Laravel框架中Blade模板用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • Windows下Apache + PHP SESSION丢失的解决过程全纪录

    Windows下Apache + PHP SESSION丢失的解决过程全纪录

    这篇文章主要介绍了Windows下Apache + PHP SESSION丢失的解决过程全纪录,花费了很长时间,最终解决的方式却令人啼笑皆非,郁闷之极。
    2015-04-04
  • 在IIS下安装PHP扩展的方法(超简单)

    在IIS下安装PHP扩展的方法(超简单)

    这篇文章主要介绍了在IIS下安装PHP扩展的方法,非常简单,具有参考借鉴价值,需要的朋友可以参考下
    2017-04-04
  • 使用php重新实现PHP脚本引擎内置函数

    使用php重新实现PHP脚本引擎内置函数

    使用php重新实现PHP脚本引擎内置函数...
    2007-03-03
  • php实现水仙花数的4个示例分享

    php实现水仙花数的4个示例分享

    水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 3^3+ 5^3 = 153)这篇文章主要介绍了php实现水仙花数的4个示例分享,需要的朋友可以参考下
    2014-04-04
  • php 人员权限管理(RBAC)实例(推荐)

    php 人员权限管理(RBAC)实例(推荐)

    下面小编就为大家带来一篇php 人员权限管理(RBAC)实例(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • ThinkPHP写数组插入与获取最新插入数据ID实例

    ThinkPHP写数组插入与获取最新插入数据ID实例

    这篇文章主要介绍了ThinkPHP写数组插入与获取最新插入数据ID的方法,实例讲述了ThinkPHP基于数组操作数据库的方法,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • Laravel框架模板加载,分配变量及简单路由功能示例

    Laravel框架模板加载,分配变量及简单路由功能示例

    这篇文章主要介绍了Laravel框架模板加载,分配变量及简单路由功能,结合实例形式分析了Laravel框架模板加载,分配变量及简单路由功能相关原理、操作技巧与注意事项,需要的朋友可以参考下
    2018-06-06

最新评论