关于ebay平台接口(php)对接示例
获取订单接口示例 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)对接示例的更多相关文章
- 关于shopee平台接口(php)对接示例
2018年8月之后,shopee开始使用新接口,需要进行授权操作 1.授权 public function getAuth(){ /** * @param ShopApiShopee $model * ...
- the5fire博客对接微信公众平台接口 | the5fire的技术博客
the5fire博客对接微信公众平台接口 | the5fire的技术博客 the5fire博客对接微信公众平台接口
- Spring Cloud 微服务开放平台接口
github源码地址:https://github.com/spring-cloud/spring-cloud-security 前言: 什么是开放平台接口 场景 : 总公司与子公司 对接接口 还有 ...
- 用vetr.x写一个HTTP接口适配器, 对接各种形式接口
用vetr.x写一个HTTP接口适配器, 对接各种形式接口 项目地址:https://github.com/hjx601496320/transmit 业务说明 在日常开发工作中,我们经常会遇到要和各 ...
- 关于调用三方平台接口与推送接口的总结<二>(2020.7.27)
前言:本篇博客是接着上篇总结写的,想了解怎么对接第三方平台接口的同学可以看我上一篇博客,地址是 https://www.cnblogs.com/alanturingson/p/13377500.ht ...
- JAVA 调用第三方短信平台接口发送短信
做了几个调用三方短信平台发送短信的例子,大部分需要 携带参数,向指定URL发送请求 回顾对接第一个平台时痛苦的乱码经历,这里放一份代码,算是个模版,再用到的时候过来copy一下就OK. 在进入主题之前 ...
- Java微信公众平台接口封装源码分享
前言: 这篇博客是在三月初动手项目的时候准备写的,但是为了完成项目只好拖延时间写这篇博客,顺便也可以在项目中应用我自己总结的的一些经验.今天看来,这些方法的应用还是可以的,至少实现了我之前的 ...
- .NET实现微博粉丝服务平台接口
[文章摘要]Senparc.Weixin.MP虽然是微信公众号的SDK,但由于易信公众号和新浪微博粉丝服务平台也提供了微信兼容接口,所以也可以使用其快速实现相应的服务,当然微博由于与微信存在差异,如果 ...
- 用c#开发微信 (19) 公众平台接口权限列表说明 - 订阅号、服务号认证后的区别
最新发现有些原来认证服务号的权限对认证的订阅号开放了,这里是官方的文档说明<公众平台接口权限列表说明>,明显比这里说得详细.准确多了<微信公众平台服务号.订阅号的相关说明>.另 ...
随机推荐
- Java基础之枚举
Java基础之枚举 作为1.5才增加的特性,枚举的使用并不是很多. 枚举其实就是一个比较特殊的类,就如同注解其实也是个特殊的接口一样(注解反编译之后没有了@符号).枚举使用enum关键字声明,通过反编 ...
- python -- 犯过的错之变量作用域
1.写代码时发现取得变量值,会被覆盖,改为图二的写法后case_id则不会覆盖. 原因:可以理解为变量是内存中一个对象的“引用”.在函数参数传值时,变量也是内存对象的引用. 当对象为可更改对象时,是引 ...
- 每天一点点之css - 动画-一个圆绕着另一个圆动(绕着轨迹运动)
最近要开发一个类似星河的效果,需要小圆绕着一定的轨迹运动,这个时候我首先想到的是使用canvas来实现,在实现过程中发现这个实现起来不是很灵活,然后想到css3有动画也可以实现,下面是效果 注:图2是 ...
- vs使用opencv总提示igdrclneo64.dll异常.exe: 0xC0000005:的解决方法
最近项目中要使用opencv库,搭建好环境,使用接口的时候,总提示 igdrclneo64.dll报错崩溃,一直怀疑是自己程序的问题,后面经过一系列的查资料才解决 解决办法: 本地环境:vs2015+ ...
- sqlserver 存储过程 C#调用 实现从数据库Get数据
在最近的项目中我想建立一个EFDBfirst的模型但是失败了,生成的edmx中没有实体类和表结构,到处需求解决方案,未果. 问题请见:https://q.cnblogs.com/q/102743/ 后 ...
- UVA 11624 UVA 10047 两道用 BFS进行最短路搜索的题
很少用bfs进行最短路搜索,实际BFS有时候挺方便得,省去了建图以及复杂度也降低了O(N*M): UVA 11624 写的比较挫 #include <iostream> #include ...
- Linix CentOS6.5 下载安装图解(转)
CentOS 6.5系统镜像有32位和64位两个版本,生产服务器如果是大内存(4G以上内存) 建议安装64位版本CentOS-6.5-x86_64-bin-DVD1.iso 附:CentOS 6.5下 ...
- 实盘交易哪些代码BUG产生严重亏损
1.少写一个return,疯狂开平2900次,以爆仓结束 2.在上生产环境前,不小心误删除了一个“!”(我至今也不清楚为什么会误删了,晕),导致平仓逻辑一直不满足,不止损,让我损失惨重! 3.卖单变买 ...
- mysql5.7.21源码安装
1.下载安装包 MySQL 官方下载地址:https://dev.mysql.com/downloads/mysql/ MySQL 5.7官方安装文档:https://dev.mysql.com/d ...
- Swift 中调试状态下打印日志
首先我们应该知道Swift中真个程序的入口就是在AppDelegate.swift中.所以在打印日志在 AppDelegate.swift中是这样的 import UIKit @UIApplicati ...