1. 获取订单接口示例
  2.  
  3. public function importEbayOrder(){
    set_time_limit(0);
    if(empty( $this->_ShopApiEbay->token )){
    self::fail(self::CODE_FAILURE, 'shop:' . Shop::findOne($this->_ShopApiEbay->id)->name . ' empty token');
    }else {
    $ps = 100;
    $cp = 0;
    $total_entries = 1;
    $mod_time_from = date('c', strtotime('-24 hours'));
    $mod_time_to = date('c', time());
    $header = array(
    'Content-Type: text/xml',
    'X-EBAY-API-COMPATIBILITY-LEVEL:' . self::X_EBAY_API_COMPATIBILITY_LEVEL,
    'X-EBAY-API-DEV-NAME:'. self::X_EBAY_API_DEV_NAME,
    'X-EBAY-API-APP-NAME:' . self::X_EBAY_API_APP_NAME,
    'X-EBAY-API-CERT-NAME' . self::X_EBAY_API_CERT_NAME,
    'X-EBAY-API-SITEID:' . 0,
    'X-EBAY-API-CALL-NAME:GetOrders',
    'X-EBAY-API-REQUEST-ENCODING:XML'
    );
    $message = [];
    while ($ps*$cp < $total_entries)
    {
    sleep(60);
    $cp ++;
    $xml = '<?xml version="1.0" encoding="utf-8"?>';
    $xml .= '<GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents">';
    $xml .= '<RequesterCredentials>';
    $xml .= '<eBayAuthToken>' . $this->_ShopApiEbay->token . '</eBayAuthToken>';
    $xml .= '</RequesterCredentials>';
    $xml .= '<ModTimeFrom>' . $mod_time_from . '</ModTimeFrom>';
    $xml .= '<ModTimeTo>' . $mod_time_to . '</ModTimeTo>';
    $xml .= '<DetailLevel>ReturnAll</DetailLevel>';
    $xml .= '<IncludeFinalValueFee>True</IncludeFinalValueFee>';
    $xml .= '<OrderStatus>All</OrderStatus>';
    $xml .= '<Pagination>';
    $xml .= '<EntriesPerPage>' . $ps . '</EntriesPerPage>';
    $xml .= '<PageNumber>' . $cp . '</PageNumber>';
    $xml .= '</Pagination>';
    $xml .= '</GetOrdersRequest>';
    $response = $this->_curl($header, $xml);
    if( $response->isSuccess ){
    OriginDataEbayOrder::importOrder($response->data->OrderArray, $this->_ShopApiEbay);
    if(isset($response->data->PaginationResult->TotalNumberOfEntries)){
    $total_entries = (int)$response->data->PaginationResult->TotalNumberOfEntries;
    }
    }else{
    $message[] = Shop::findOne($this->_ShopApiEbay->id)->name . ':getOrder ' . $response->message ;
    }
    }
    if( empty($message) ){
    return self::success(self::CODE_SUCCESS, self::CODE_SUCCESS);
    }else{
    return self::fail(self::CODE_FAILURE, join("\n", $message));
    }
    }
    }
  4.  
  5. curl 模拟请求
  1. public function _curl($header, $xml){
    $connection = curl_init();
    curl_setopt($connection, CURLOPT_URL, self::EBAY_WS_URI);
    curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($connection, CURLOPT_HTTPHEADER, $header);
    curl_setopt($connection, CURLOPT_POST, 1);
    curl_setopt($connection, CURLOPT_POSTFIELDS, $xml);
    curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($connection);
    curl_close($connection);
    $response = $this->transformXmlToObject($response);
    if( $response->Ack == 'Success' ){
    return self::success($response, self::CODE_SUCCESS);
    }else{
    return self::fail(self::CODE_FAILURE, (string)$response->Errors->LongMessage);
    }
    }
  2.  
  3. 将请求的xml对象转化为对象
  1. public function transformXmlToObject($xml){
    //禁止引用外部xml实体
    libxml_disable_entity_loader(true);
    $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
    // echo '<pre>';var_dump($xmlstring);die;
    // $val = json_decode(json_encode($xmlstring),true);//转数组
    return $xmlstring;
    }

关于ebay平台接口(php)对接示例的更多相关文章

  1. 关于shopee平台接口(php)对接示例

    2018年8月之后,shopee开始使用新接口,需要进行授权操作 1.授权 public function getAuth(){ /** * @param ShopApiShopee $model * ...

  2. the5fire博客对接微信公众平台接口 | the5fire的技术博客

    the5fire博客对接微信公众平台接口 | the5fire的技术博客 the5fire博客对接微信公众平台接口

  3. Spring Cloud 微服务开放平台接口

    github源码地址:https://github.com/spring-cloud/spring-cloud-security 前言: 什么是开放平台接口 场景 : 总公司与子公司 对接接口  还有 ...

  4. 用vetr.x写一个HTTP接口适配器, 对接各种形式接口

    用vetr.x写一个HTTP接口适配器, 对接各种形式接口 项目地址:https://github.com/hjx601496320/transmit 业务说明 在日常开发工作中,我们经常会遇到要和各 ...

  5. 关于调用三方平台接口与推送接口的总结<二>(2020.7.27)

    前言:本篇博客是接着上篇总结写的,想了解怎么对接第三方平台接口的同学可以看我上一篇博客,地址是  https://www.cnblogs.com/alanturingson/p/13377500.ht ...

  6. JAVA 调用第三方短信平台接口发送短信

    做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...

  7. Java微信公众平台接口封装源码分享

    前言:      这篇博客是在三月初动手项目的时候准备写的,但是为了完成项目只好拖延时间写这篇博客,顺便也可以在项目中应用我自己总结的的一些经验.今天看来,这些方法的应用还是可以的,至少实现了我之前的 ...

  8. .NET实现微博粉丝服务平台接口

    [文章摘要]Senparc.Weixin.MP虽然是微信公众号的SDK,但由于易信公众号和新浪微博粉丝服务平台也提供了微信兼容接口,所以也可以使用其快速实现相应的服务,当然微博由于与微信存在差异,如果 ...

  9. 用c#开发微信 (19) 公众平台接口权限列表说明 - 订阅号、服务号认证后的区别

    最新发现有些原来认证服务号的权限对认证的订阅号开放了,这里是官方的文档说明<公众平台接口权限列表说明>,明显比这里说得详细.准确多了<微信公众平台服务号.订阅号的相关说明>.另 ...

随机推荐

  1. CCCC L3-015. 球队“食物链”(dfs+剪枝)

    题意: 某国的足球联赛中有N支参赛球队,编号从1至N.联赛采用主客场双循环赛制,参赛球队两两之间在双方主场各赛一场. 联赛战罢,结果已经尘埃落定.此时,联赛主席突发奇想,希望从中找出一条包含所有球队的 ...

  2. 外部 Storage Provider【转】

    如果 Kubernetes 部署在诸如 AWS.GCE.Azure 等公有云上,可以直接使用云硬盘作为 Volume,下面是 AWS Elastic Block Store 的例子: 要在 Pod 中 ...

  3. EUI库 - 9 - 数据集合 - 数据容器

      DataGroup 设置一个数据源 自动创建内部所需的对象 来完成数据展示   还要设置单条数据的模板  叫ItemRenderer   继承关系 eui.List  eui.ListBase e ...

  4. Day3-T3

    原题目 Describe:又是这种最大子矩阵捆绑一堆条件的题 code: #pragma GCC optimize(2) #include<bits/stdc++.h> #define j ...

  5. sql server 日期时间数据类型

    1.日期和时间数据类型 (1)在sqlserver 2008之前,SQL Server 支持datetime 和 smalldatetime 两种日期时间数据类型.这两种数据类型日期和时间是不可分割的 ...

  6. php mysql 由于目标计算机积极拒绝,无法连接 错误原因

    除了在网上百度的那些外,我的机器发生了这个错误 我需要用php远程连接mysql,在目标机上已经给了客户机权限,可是还是发生“ 由于目标计算机积极拒绝,无法连接”错误 在客户机上直接用终端连接目标机的 ...

  7. Aizu 2155 Magic Slayer 背包DP

    这是上上次对抗赛的题目了 其实现在发现整个代码从头到尾,都是用了背包,怪我们背包没深入学好. 比赛的时候,聪哥提出的一种思路是,预处理一下,背包出 ALL攻击 和 single攻击的 血量对应的最小花 ...

  8. Essay写作的灵魂:内容

    在国内大家也许不觉得时常要写essay,但在国外留学,时不时就会有一篇essay写作任务下来.而时常写文的同学们应当就会知道一篇文章中的介绍和结论有多么重要,甚至于当导师拿到你的essay,如果摘要没 ...

  9. 说一说我了解的react生命周期函数

    我了解的几个阶段 Mounting 挂载 Updating 更新 Unmounting 卸载 我说几个我常用的钩子函数 1.挂载阶段Mounting 1)constructor():函数构造器 执行次 ...

  10. 18个python的高效编程技巧

    01 交换变量 >>>a=3 >>>b=6 这个情况如果要交换变量在c++中,肯定需要一个空变量.但是python不需要,只需一行,大家看清楚了 >>& ...