获取订单接口示例

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));
}
}
} curl 模拟请求
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);
}
} 将请求的xml对象转化为对象
    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. dns、网关、IP地址,主要是配置resolv.conf\network\ifcfg-eth0

    Ubuntu sudo vi /etc/network/interfac   添加 dns-nameservers 192.168.1.254dns-search stonebean.com cent ...

  2. C# 对CSV 读写

    下面这篇博客只介绍了简单的 用“,”隔开的方式, 不是很推荐,但是对于符合的数据类型还是挺好的 https://www.cnblogs.com/Clin/archive/2013/03/14/2959 ...

  3. 汉诺塔(思维、DP思想)

    链接:https://ac.nowcoder.com/acm/contest/3007/C来源:牛客网 题目描述 现在你有 N 块矩形木板,第 i 块木板的尺寸是 Xi*Yi,你想用这些木板来玩汉诺塔 ...

  4. Linux 下 OpenCV3 安装

    编译安装OpenCV3 从官网下载:http://opencv.org/releases.html 选择一个较新版本的opencv3.X,下载source源代码 下载之后解压,并cd到该文件夹进行编译 ...

  5. Vue 指令 v-text v-html

    有三个指令达到的效果是一样的 {{JS表达式}}  差值表达式 v-text="JS表达式" v-html="JS表达式"   //会自动解析tag js表达式 ...

  6. linux_ssh用户枚举猜测

    新建一个用户名txt文档,写入常用的用户名 msfconsole use auxiliary/scanner/ssh/ssh_enumusers3

  7. zabbix中文乱码解决

    问题现象: zabbix字体修改成中文后监控显示乱码 原因: 该问题是由于zabbix默认使用的是“DejaVuSans.ttf”(zabbix3.2.7默认使用的是“graphfont.ttf”), ...

  8. echart曲线图标识最大值、最小值、平均值

    option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] }, yAx ...

  9. PAT Advanced 1115 Counting Nodes in a BST (30) [⼆叉树的遍历,BFS,DFS]

    题目 A Binary Search Tree (BST) is recursively defined as a binary tree which has the following proper ...

  10. flask前后端数据交互

    1.后端如何得到前端数据1)如果前端提交的方法为POST:后端接收时要写methods=[‘GET’,‘POST’]xx=request.form.get(xx);xx=request.form[’‘ ...