【问题标题】:PHP Curl - eBay CSV FileExchangePHP Curl - eBay CSV 文件交换
【发布时间】:2019-10-31 15:48:32
【问题描述】:

我已尝试将 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 正常 服务器:Apache-Coyote/1.1 设置 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;路径=/ 缓存控制:私有 Pragma:无缓存 内容类型:text/html;charset=UTF-8 内容长度:731 日期:2019 年 10 月 31 日星期四 12:42:11 GMT 连接:保持活动

文件上传成功。您的参考号是 . 关闭

谢谢你帮助我。

【问题讨论】:

    标签: php


    【解决方案1】:

    我找到了解决办法:

    显然在 php 7.1 中 @ 无效,并且文件发布到 ebay 是空的。

    我使用 curl_file_create 函数,它的工作。

    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')
    );
    

    希望对任何人都有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多