php 海关对接 进口商品_关于ebay平台接口(php)对接示例

本文提供了一个PHP示例,演示如何通过eBay API获取最近24小时内更新的进口商品订单。首先检查token,然后设置HTTP头并构造XML请求,使用curl进行POST请求,最后将XML响应转换为对象进行处理。
摘要由CSDN通过智能技术生成

获取订单接口示例

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 .= '';

$xml .= '';

$xml .= '' . $this->_ShopApiEbay->token . '';

$xml .= '';

$xml .= '' . $mod_time_from . '';

$xml .= '' . $mod_time_to . '';

$xml .= 'ReturnAll';

$xml .= 'True';

$xml .= 'All';

$xml .= '';

$xml .= '' . $ps . '';

$xml .= '' . $cp . '';

$xml .= '';

$xml .= '';

$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 '

';var_dump($xmlstring);die;

// $val = json_decode(json_encode($xmlstring),true);//转数组

return $xmlstring;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值