`

PHP 微信接口封装类

    博客分类:
  • php
阅读更多

<?php     
  /**     
    * 微信公众平台接口PHP100封装功能类文件     
    * author PHP100.com  张恩民     
    * date 2013-4-9 PRC:E+8 23:03     
    * linkme QQ925939 chuangen.com     
    */     
        
  define("TOKEN", "chuangenit");     
  $wechatObj = new wechatCallbackapiTest();     
  $wechatObj->weixin_run(); //执行接收器方法     
        
  class wechatCallbackapiTest     
  {     
     private $fromUsername;     
     private $toUsername;     
     private $times;     
     private $keyword;     
          
          
     public function weixin_run(){     
       $this->responseMsg();     
  $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com");     
  $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com");     
  $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com");     
  $this->fun_xml("news",$arr,array(2,0));      
     }     
          
          
    function t($n){     
     include("t_api.php");     
     $c_name=$t_api[$n];     
     $json=file_get_contents("http://m.weather.com.cn/data/101110310.html");     
     return json_decode($json);     
    }     
          
          
          
  public function valid()     
      {     
          $echoStr = $_GET["echostr"];     
        
          //valid signature , option     
          if($this->checkSignature()){     
                 echo $echoStr;     
                 exit;     
          }     
      }     
        
      public function responseMsg()     
      {     
  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];     
  if (!empty($postStr)){     
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);     
                  $this->fromUsername = $postObj->FromUserName;     
                  $this->toUsername = $postObj->ToUserName;     
                  $this->keyword = trim($postObj->Content);     
  $this->times = time();     
          }else {     
                 echo "this a file for weixin API!";     
                 exit;     
          }     
      }     
        
  //微信封装类,     
  //type: text 文本类型, news 图文类型     
  //text,array(内容),array(ID)     
  //news,array(array(标题,介绍,图片,超链接),...小于10条),array(条数,ID)     
        
  private function fun_xml($type,$value_arr,$o_arr=array(0)){     
   //=================xml header============     
   $con="<xml>     
  <ToUserName><![CDATA[{$this->fromUsername}]]></ToUserName>     
  <FromUserName><![CDATA[{$this->toUsername}]]></FromUserName>     
  <CreateTime>{$this->times}</CreateTime>     
  <MsgType><![CDATA[{$type}]]></MsgType>";     
        
        //=================type content============     
   switch($type){     
        
     case "text" :      
   $con.="<Content><![CDATA[{$value_arr[0]}]]></Content>     
  <FuncFlag>{$o_arr}</FuncFlag>";       
  break;     
        
  case "news" :      
   $con.="<ArticleCount>{$o_arr[0]}</ArticleCount>     
  <Articles>";     
  foreach($value_arr as $id=>$v){     
  if($id>=$o_arr[0]) break; else null; //判断数组数不超过设置数     
           $con.="<item>     
  <Title><![CDATA[{$v[0]}]]></Title>      
  <Description><![CDATA[{$v[1]}]]></Description>     
  <PicUrl><![CDATA[{$v[2]}]]></PicUrl>     
  <Url><![CDATA[{$v[3]}]]></Url>     
  </item>";     
  }     
  $con.="</Articles>     
  <FuncFlag>{$o_arr[1]}</FuncFlag>";       
  break;     
        
   } //end switch     
        
  //=================end return============     
   echo $con."</xml>";     
  }     
        
        
        
  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;     
  }     
  }     
  }     
        
  ?>     
来源:IT软件技术在线问答网,地址:http://ask.itruanjian.com/?note/view/8030.html 保留原文链接,是开源分享的开始.

分享到:
评论

相关推荐

    php微信接口完整封装类

    微信公众平台接口封装功能类文件,微信接口要注意的两个地方一个就是文本超链接和文字换行问题, 微信采用XML进行回复,Content内容如果包含特殊字符不要使用CDATA包含;在XML数据中,一些特殊字符必须用转义符号来...

    php微信接口完整封装类.zip

    微信公众平台接口封装功能类文件,微信接口要注意的两个地方一个就是文本超链接和文字换行问题, 微信采用XML进行回复,Content内容如果包含特殊字符不要使用CDATA包含;在XML数据中,一些特殊字符必须用转义...

    自已写的 php 微信支付V3接口类

    在本文中,我们将深入探讨如何使用自编的PHP微信支付V3接口类,以及与之相关的技术要点。首先,我们要理解微信支付V3是微信官方提供的新一代支付接口,旨在提供更安全、高效的支付体验。使用PHP来实现这个接口,我们...

    微信公众平台封装类

    微信公众平台封装类:申请公众号,调用本类推送消息

    最全微信接口类

    封装最全微信接口处理类,可以直接使用,PHP语言,纯PHP代码,直供技术参考

    PHP微信封装类

    包括3个类,封装了微信公众账号开发接口,还有微信一对一接口,网页用微信扫描二维码实现登陆类

    tp5微信小程序封装类库

    2. **预支付订单生成**:调用微信接口生成预支付订单,这个过程中会包含商品信息、金额、回调URL等数据。 3. **订单签名**:为了保证数据安全,需要对请求参数进行签名,防止数据被篡改。 4. **调用微信支付SDK**:...

    微信接口库:PHPToQyWeixin PHP调用企业微信API接口底层类库.zip

    本项目是基于个人喜好及实际开发需求进行编写和设计的,主要功能是完成了对微信企业号API的封装,目前还在不断完善中,通过调用本项目的类库和函数,可以实现调用微信企业号API,降低了开发成本,开发者可以不用再...

    php比较完整的微信开发类

    5. **微信接口封装**: 这个PHP类封装了与微信接口的所有交互,使得开发者无需关心底层的HTTP请求细节。它可能包含了OAuth2.0授权流程、用户信息获取、菜单创建和管理、模板消息发送等功能,提供统一的调用方式,...

    基于PHP的ecshop微信商城接口 php版.zip

    3. `Wechat.php`:一个类文件,封装了与微信API的交互逻辑。 4. `lib`目录:可能包含辅助函数库或第三方库,如curl、微信SDK等。 5. `sql`目录:数据库脚本,用于安装或更新数据库结构。 6. `docs`或`README.md`:...

    微信支付 v3php版本

    请求型接口是将参数封装成xml,以post方式提交到微信,微信响应结果;响应型接口则是响应微信的post请求。Wxpay_client_是请求型接口的基类。Wxpay_server_是响应型接口的基类。Wxpay_client_、Wxpay_server_都继承...

    企业微信SDK包PHP扩展

    这个扩展名为“Wxwork”,它提供了丰富的类库和函数,使得开发者能够轻松实现与企业微信接口的交互,如发送消息、管理通讯录、处理事件推送等。 在PHP中,Wxwork SDK主要包含以下几个核心组件: 1. **OAuth认证**...

    微信第三方平台开发 必备工具代码库 PHP版本 WXBizMsgCrypt

    微信第三方平台开发官方提供...2.WXBizMsgCrypt类封装了 DecryptMsg, EncryptMsg两个接口,分别用于开发者解密以及开发者回复消息的加密。使用方法可以参考Sample.php文件。 3.加解密协议请参考微信公众平台官方文档。

    ThinkPHP5微信支付封装.zip

    在这个“ThinkPHP5微信支付封装”的项目中,我们主要探讨的是如何在ThinkPHP5框架下进行微信支付接口的封装和调用。 首先,我们要了解微信支付的基本流程。微信支付主要包括以下几个步骤:申请商户号、设置密钥、...

    php比较完整的微信开发类.zip

    为大家介绍比较完整的微信开发php代码,封装成一个微信接口类,验证服务器地址有效性,接收微信服务器发送POST请求到开发者服务器,携带的XML数据包,获取接收消息中的参数内容,聚合数据-获取最新趣图。

    PHP微信通用SDK,支持微信支付及所有基础接口

    然后,通过SDK提供的类和方法调用对应的微信接口。例如,调用`UnifiedOrder`方法进行支付下单,调用`Refund`方法发起退款操作。 6. **异常处理和日志记录** SDK通常会封装微信返回的错误码,提供统一的异常处理...

    PHP微信支付案例

    WxPay.Api.php"接口访问类,包含所有微信支付API列表的封装" WxPay.Config.php"配置信息所在文件" WxPay.Data.php"签名相关类,含签名生成" WxPay.Exception.php"异常类" WxPay.Notify.php"回调函数的...

    PHP企业微信会话存档扩展

    这里的`Client`类可能是SDK的核心类,包含了与企业微信接口交互的方法。`getConversationRecords`函数则封装了获取会话记录的逻辑。 总的来说,PHP企业微信会话存档扩展为企业微信的使用者提供了强大的工具,简化了...

    PHP APP微信支付

    PHP APP微信支付是一种常见的移动应用内支付方式,它利用微信提供的支付接口,允许用户通过微信钱包进行线上交易。在这个过程中,开发者需要结合PHP编程语言和ThinkPHP框架来实现与微信服务器的交互。以下是对这个...

    微信收货地址共享接口类,完整代码

    `WxAddress.php`是核心的接口类,它封装了与微信服务器交互的逻辑。该类通常会包含以下功能: - 用户授权获取access_token - 使用access_token调用微信API获取用户收货地址 - 错误处理和重试机制 - 数据解析,...

Global site tag (gtag.js) - Google Analytics