Nano Hash - криптовалюты, майнинг, программирование

Использование Volusion API для импорта данных о заказах

Я безуспешно пытался использовать Volusion API для импорта данных заказа, а поддержка через Volusion ограничена. Я склоняюсь к решению PHP, и на их веб-сайте есть этот пример использования API для импорта с php ...

<?php
    //  Create the Xml to POST to the Webservice
    $Xml_to_Send = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
    $Xml_to_Send .= "<Volusion_API>";
    $Xml_to_Send .= "<!--";
    $Xml_to_Send .= "    xml input file for \"\"";
    $Xml_to_Send .= "-->";
    $Xml_to_Send .= "</Volusion_API>";

    //  Create the Header
    $url = "https://www.xxxxxcomusa.com/net/[email protected] &EncryptedPassword=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&Import=Insert";
    $header  = "POST".$url." HTTP/1.0 \r\n";
    $header .= "MIME-Version: 1.0 \r\n";
    $header .= "Content-type: text/xml; charset=utf-8 \r\n";
    $header .= "Content-length: ".strlen($post_string)." \r\n";
    $header .= "Content-transfer-encoding: text \r\n";
    $header .= "Request-number: 1 \r\n";
    $header .= "Document-type: Request \r\n";
    $header .= "Interface-Version: Test 1.4 \r\n";
    $header .= "Connection: close \r\n\r\n";
    $header .= $Xml_to_Send;

    //  Post and Return Xml
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 4);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
    $data = curl_exec($ch);

    //  Check for Errors
    if (curl_errno($ch)){
        print curl_error($ch);
    } else {
       curl_close($ch);
    }

    //  Display the Xml Returned on the Browser
    echo $data;
?>

Я отредактировал это соответствующим образом, чтобы обновить порядок (использовал «Import = Update»), но на результирующей странице нет вывода «данных», и запись не обновляется. Я могу получать данные, возвращаемые из api, используя аналогичный URL-адрес, поэтому я знаю, что мой зашифрованный пароль правильный. Думаю, я также определил, что строка, которая гласит ...

$header  = "POST".$url." HTTP/1.0 \r\n";

должен прочесть ...

   $header  = "POST ".$url." HTTP/1.0 \r\n";

с пробелом после POST, но я все еще не могу успешно обновить запись. Я надеялся, что кто-то, возможно, добился успеха и поделится более подробной информацией о том, как вы смогли импортировать обновление с помощью Volusion API (и, надеюсь, PHP).

30.11.2015

Ответы:


1

Вместо того, чтобы пытаться использовать CUSTOMREQUEST, вы можете использовать один ниже. Он отправляет ваши заголовки соответствующим образом.

Сначала сделайте заголовок, как показано ниже:

$header  = array(
    "MIME-Version: 1.0",
    "Content-type: text/xml; charset=utf-8",
    "Content-transfer-encoding: text",
    "Request-number: 1",
    "Document-type: Request",
    "Interface-Version: Test 1.4"
);

После этого сделайте свой почтовый запрос, как показано ниже, с указанным выше заголовком.

curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Xml_to_Send); 
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
01.12.2015
  • Спасибо, Сабудж. Ваше предложение продвинуло меня достаточно далеко, так что я считаю, что мой запрос в конечном итоге был отформатирован и отправлен правильно, только для того, чтобы получить ответ с помощью Только режим вставки поддерживается для заказов. В интересах других, пытающихся выполнить аналогичную задачу, это то, что я закончил для кода ... 01.12.2015

  • 2

    Вот код, с которым я закончил, но, как я уже упоминал выше, похоже, что Import = Update не работает с данными Volusion Order, но аналогичный код должен работать при попытке использовать Volusion API и PHP для импорта. Еще раз спасибо за помощь, Сабудж!

    <?php
    
        $file = file_get_contents('mydir/singleorder.txt', true);
    
    //  Create the Xml to POST to the Webservice
    
        $Xml_to_Send = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
        $Xml_to_Send .= "<Volusion_API>";
    //  $Xml_to_Send .= "<!--";
        $Xml_to_Send .= $file;
    //  $Xml_to_Send .= "\"\"";
    //  $Xml_to_Send .= "-->";
        $Xml_to_Send .= "</Volusion_API>";
    
        $url = "https://www.xxxxxusa.com/net/[email protected]&EncryptedPassword=0000000000000000000000000000xxxxxxxxxx&Import=Update";
    
    //  Create the Header   
    
        $header  = array(
        "MIME-Version: 1.0",
        "Content-type: text/xml; charset=utf-8",
        "Content-transfer-encoding: text",
        "Request-number: 1",
        "Document-type: Request",
        "Interface-Version: Test 1.4"
    );
    
        //  Post and Return Xml
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $Xml_to_Send); 
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        $data = curl_exec($ch);
    
        //  Check for Errors
        if (curl_errno($ch)){
            print curl_error($ch);
        } else {
           curl_close($ch);
        }
    
       //  Display the Xml Returned on the Browser
        echo $data;
    ?>
    
    01.12.2015

    3

    Сначала вы должны повторить свой файл.

    Поскольку у меня была такая же проблема, оставшийся код верен, но, возможно, ваш путь к файлу неверен и не поддерживается PHP, поэтому записи не вставляются.

    Когда я изменил путь к каталогу, он выглядит так ..

    $file = file_get_contents('singleorder.txt', true);
    

    Он всегда будет в одном каталоге. Начала работать нормально. Так что попробуйте это для решения.

    25.10.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..