Создать новую учетную запись с webapi в Prestashop - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь сделать тест для создания новой учетной записи на веб-сайте prestashop, который работает на моем локальном компьютере («localhost / prestashop» - это URL-адрес), используя веб-сервис. В поисках документации я нашел «PSWebServiceLibrary», затем создаю простой php файл, который загружает библиотеку, но выполняет код. Я всегда получаю « Неверный HTTP-ответ » при попытке отправить данные для добавления пользователей: Если я просто попытаюсь получить данные о существующих пользователях, это сработает. Одно замечание: при настройке ключа веб-сервиса я активировал разрешения GET и POST для клиентов. Это код, который я написал:

<?php

try {
    require_once('./PSWebServiceLibrary.php');
    $webService = new PrestaShopWebservice("​http://localhost/prestashop", "PHTZVH77MGMAI45F284C2B9UY7TUUFRB", false);

    // for exemple.... this works!
    //$xml = $webService->get(array('url' => 'http://localhost/prestashop/api/customers/1'));

    $xml = $webService->get(array('url' => 'http://localhost/prestashop/api/customers?schema=blank'));
    $resources = $xml->children()->children();

    $resources->id_gender = "1";
    $resources->id_default_group = "3";
    $resources->id_lang = "2";
    $resources->id_shop = "1";
    $resources->id_shop_group = "1";
    $resources->is_guest = "0";
    $resources->active = "1";
    $resources->id_risk = "0";
    $resources->deleted = "0";
    $resources->firstname = "user";
    $resources->lastname = "test";
    $resources->email = "test@test.com";
    $resources->passwd = "test";
    $resources->date_add = "2020-07-03 17:59:06";
    $resources->date_upd = "2020-07-03 17:59:06";

    $opt = array('resource' => 'customers');
    $opt['postXml'] = $xml->asXML();
    $xml =$webService->add($opt);

} catch (PrestaShopWebserviceException $err) {
    $trace = $err->getTrace();
    $errorCode = $trace[0]['args'][0];

    if ($errorCode == 401)
        $error = "bad auth key";
    else
        $error = $err->getMessage();

    echo $error;

} catch (Exception $err) {
    echo $err->getMessage();
}
...