Ответы пользователя по тегу API
  • Не получается составить запрос к API на PHP, может кто поможет идеями?

    @godlikebasic
    Backend PHP
    Подключаете АвтоСоюз, как я погляжу)

    Вы просто пропустили `items`, в качестве ключа корневого массива

    Отправляемый массив должен выглядеть примерно так:
    $send = [
    'items' =>
       [
            'Article' => 'sku22',
            'Brand' => 'Toyota',
            'SupplierName' => 'Kolesa LLP',
            'CostSale' => 512,
            'Quantity' => 1,
            'SupplierTimeMin' => 1,
            'SupplierTimeMax' => 10,
            'Comment' => 'comment',
            'GioID' => 2
        ],
       [
            'Article' => 'ads2512',
            'Brand' => 'Nissan',
            'SupplierName' => 'RDM',
            'CostSale' => 6115,
            'Quantity' => 1,
            'SupplierTimeMin' => 1,
            'SupplierTimeMax' => 10,
            'Comment' => 'comment',
            'GioID' => 2
        ]
    ];


    UPDATE:
    да, оказалось несколько сложнее, сначала нужно список товаров превратить в строку и только потом класть её в 'items'
    вот код который работает аналогично нашему:
    $parts = [
        [
        "Article"         => 'H020',
        'Brand'           => 'ИННОВАТОР',
        'SupplierName'    => 'Ростов-на-Дону',
        'CostSale'        => '7.97',
        'Quantity'        => 1,
        'SupplierTimeMin' => 0,
        'SupplierTimeMax' => 0,
        'Comment'         => '',
        'GioID'           => 0]
    ];
    $url = 'https://xn--80aep1aarf3h.xn--p1ai/SearchService/AddOrder';
    $encoded = json_encode($parts, JSON_UNESCAPED_UNICODE); 
    var_dump($encoded);
    $urlParams = ['items' => $encoded]; 
    $get_params = http_build_query($urlParams);
    var_dump($get_params);
    $full_url = $url. '?' .$get_params;
    
    var_dump($full_url);


    дампы:
    $encoded
    [{"Article":"H020","Brand":"ИННОВАТОР","SupplierName":"Ростов-на-Дону","CostSale":"7.97","Quantity":1,"SupplierTimeMin":0,"SupplierTimeMax":0,"Comment":"","GioID":0}]```

    $get_params
    items=%5B%7B%22Article%22%3A%22H020%22%2C%22Brand%22%3A%22%D0%98%D0%9D%D0%9D%D0%9E%D0%92%D0%90%D0%A2%D0%9E%D0%A0%22%2C%22SupplierName%22%3A%22%D0%A0%D0%BE%D1%81%D1%82%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%94%D0%BE%D0%BD%D1%83%22%2C%22CostSale%22%3A%227.97%22%2C%22Quantity%22%3A1%2C%22SupplierTimeMin%22%3A0%2C%22SupplierTimeMax%22%3A0%2C%22Comment%22%3A%22%22%2C%22GioID%22%3A0%7D%5D

    $full_url
    https://xn--80aep1aarf3h.xn--p1ai/SearchService/AddOrder?items=%5B%7B%22Article%22%3A%22H020%22%2C%22Brand%22%3A%22%D0%98%D0%9D%D0%9D%D0%9E%D0%92%D0%90%D0%A2%D0%9E%D0%A0%22%2C%22SupplierName%22%3A%22%D0%A0%D0%BE%D1%81%D1%82%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%94%D0%BE%D0%BD%D1%83%22%2C%22CostSale%22%3A%227.97%22%2C%22Quantity%22%3A1%2C%22SupplierTimeMin%22%3A0%2C%22SupplierTimeMax%22%3A0%2C%22Comment%22%3A%22%22%2C%22GioID%22%3A0%7D%5D


    плюс обращаю внимание на ключи массива: 'article' != 'Article'
    Ответ написан
    3 комментария