Bigcommerce getOrders()超时行198(parseHeader?)

时间:2013-12-02 16:25:35

标签: php curl bigcommerce

下午,

只是看看bigcommerce API,我很早就被困住了!我使用PHP而不是curl,因为它在Windows机器上更容易,并且希望它可以在共享主机等上使用...

所以我使用的是bigcommmerce.php

我当前的文件看起来像这样

Bigcommerce::configure(array(
'store_url' => '******',
'username' => 'demo',
'api_key' => '******'
));
Bigcommerce::setCipher('RC4-SHA');
Bigcommerce::verifyPeer(false);

$count = Bigcommerce::getOrdersCount()/200;
for ($i = 1; $i <= $count; $i) {
    $filter = array('limit' => 200, 'page' => $i);
    $orders = Bigcommerce::getOrders($filter);
    foreach($orders as $order) {
        echo $order->name;
        echo $order->price;
    }
 }

我已经使用ping请求测试了连接,该工作正常。 此外,它可以检索罚款数量(GetOrderCount部分),但是当我尝试检索订单时,我会收到超时。

您可以在此链接上看到输出(超时需要300秒)

http://www.32bytes.co.uk/test/test.php

它引用的是像198这样的问题行,这是一大堆代码(函数)....

private function parseHeader($curl, $headers)
{
    if (!$this->responseStatusLine && strpos($headers, 'HTTP/') === 0) {
        $this->responseStatusLine = $headers;
    } else {
        $parts = explode(': ', $headers);
        if (isset($parts[1])) {
            $this->responseHeaders[$parts[0]] = trim($parts[1]);
        }
    }
    return strlen($headers);

bigcommerce.php页面默认为默认页面。

任何帮助都会非常感激 - 不知道我哪里出错!

2 个答案:

答案 0 :(得分:1)

您的脚本需要很长时间才能获取所有订单页面。 您可以通过在脚本文件/ bootstrap的顶部添加以下内容来取消自动执行超时设置来“修复”它:

ini_set('MAX_EXECUTION_TIME', -1);

答案 1 :(得分:1)

我也使用php来完全访问bigCommerce,以使我的内部库存应用程序保持最新状态。

我只使用

$orders = BigCommerce_Api::getCollection('/orders/');

然后在foeach循环中迭代

foreach($orders as $order) { .... print to page or db, which ever you choose }