簡體   English   中英

PHP Curl - eBay CSV 文件交換

[英]PHP Curl - eBay CSV FileExchange

我嘗試將 CSV 文件發送到 eBay FileExchange 服務。

我正在編寫一個應用程序來同時更新 eBay 上的許多產品。 當我使用 eBay CSV-Manager 上傳 test.csv 時,更新將成功,但使用腳本發布數據后不會發生任何事情。

我已經完成了以下步驟:

為 FileExchange 創建一個單獨的令牌。 https://signin.ebay.de/ws/eBayISAPI.dll?SignIn&runame=F-FILEEXL51P1EHH6L899Q9B969GE134DK-FileUpload

然后我使用以下腳本:

$token     = 'AgAAAA**AQAAAA**aAAAAA************';

$ebay_url = 'https://bulksell.ebay.com/ws/eBayISAPI.dll?FileExchangeUpload';

$sendheaders = array(
'User-Agent: My Client App v1.0'
);

$fields = array(
'token' => $token,
'file' => '@test.csv'
);

$ch = curl_init($ebay_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 1); // set to 0 to eliminate header info from response
curl_setopt($ch, CURLOPT_NOBODY, 0); // set to 1 to eliminate body info from response
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // use HTTP/1.0 instead of 1.1
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response. ###
curl_setopt($ch, CURLOPT_HTTPHEADER, $sendheaders);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); // use HTTP POST to send form data

$resp = curl_exec($ch); //execute post and get results

if(!curl_exec($ch)) {
die('Error: ' . curl_error($ch) . ' - Code: ' . curl_errno($ch));
}   

curl_close ($ch); 

我用過這個 csv 文件格式(test.csv)

操作;ItemID;DispatchTimeMax
修改;28*********916;30

發布后的結果:

print_r($resp);

HTTP/1.1 200 OK 服務器:Apache-Coyote/1.1 Set-Cookie:dp1=bu1p/QEBfX0BAX19AQA**617d3da3^bl/DE617d3da3^; 域=.ebay.com; 過期=星期六,2021 年 10 月 30 日 12:42:11 GMT; 路徑=/設置Cookie:s=CgAD4ACBdvCgjMjFkNjZkMDcxNmUwYTBmMTc1MTA0ZmEwZmZmYjEyZWFY39RE; 域=.ebay.com; 路徑=/設置Cookie:非會話=CgADKACBhfT2jMjFkNjZkMDcxNmUwYTBmMTc1MTA0ZmEwZmZmYjEyZWIAywABXbrdqzHTwXKU; 域=.ebay.com; 過期=星期六,2021 年 10 月 30 日 12:42:11 GMT; Path=/ Cache-Control: private Pragma: no-cache Content-Type: text/html;charset=UTF-8 Content-Length: 731 Date: Thu, 31 Oct 2019 12:42:11 GMT Connection: keep-alive

文件上傳成功。 你的參考號是。

謝謝你幫助我。

我找到了一個解決方案:

顯然在 php 7.1 中,@ 無效,並且文件發布到 ebay 是空的。

我使用 curl_file_create function 並且它的工作。

if (!function_exists('curl_file_create'))
{
    function curl_file_create($filename, $mimetype = '')
    {
        return "@$filename;filename="           
            . ($mimetype ? ";type=$mimetype" : '');
    }
}

$fields = array(
    "token" => $token,
    "file" =>  curl_file_create ($_GET['filename'], 'text/csv')
);

希望對任何人都有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM