Инструкция API интерфейса для моб. приложения

Онлайн сервис для тестирования запросов https://reqbin.com/post-online

Содержание


API ключ

X-API-KEY: f325d46eec6390280f09398c2b915b87 (актуальный ключ необходимо вычислять по формуле из письма)
Меняется каждые сутки, зависит от даты.
Пример на PHP: (формулу отправил почтой).


Создание заказа

POST /mobile-app/?method=commitOrder HTTP/1.1
Host: darvin-market.ru
Accept: application/json
X-API-KEY: f325d46eec6390280f09398c2b915b8 (меняется от даты)
Content-Type: application/json

Перед выполнением данного запроса необходимо выполнить запрос на расчет стоимости доставки (только если требуется доставка).

Параметры phone и email обязательны, при получении запроса на создание заказа.
Cперва проверяется наличие пользователя с таким phone либо email.
Затем, если логин пользователя найдет, заказ привязывается к нему, иначе создается новый логин пользователя.

Пример запроса (необходимо преобразовать в JSON)

Array
(
    [data] => Array
        (
            [order_info] => Array
                (
                    [phone] => 79001002030
                    [email] => ivanov@mail.crt
                    [name] => Иван
                    [last_name] => Иванов
                    [comment] => Тестовый заказ
                )

            [items] => Array
                (
                    [0] => Array
                        (
                            [offer] => Array
                                (
                                    [id] => 263757
                                    [count] => 2
                                )

                        )

                    [1] => Array
                        (
                            [offer] => Array
                                (
                                    [id] => 262530
                                    [count] => 1
                                )

                        )

                )

            [delivery] => Array
                (
                    [id] => 62
                    [cost] => 0
                    [address] => Array
                        (
                            [city] => Истра
                            [street] => Ленина
                            [house] => 10
                            [housing] => 1
                            [flat] => 120
                        )

                )

        )

)

Пример запроса в виде JSON

{"data":{"order_info":{"phone":"79001002030","email":"ivanov@mail.crt","name":"Иван","last_name":"Иванов","comment":"Тестовый заказ"},"items":[{"offer":{"id":263757,"count":2}},{"offer":{"id":262530,"count":1}}],"delivery":{"id":62,"cost":0,"address":{"city":"Истра","street":"Ленина","house":"10","housing":"1","flat":"120"}}}}

Параметры

order_info - общая информация по заказу;

items - товары заказа;
offer - товар
— id - id товара из фида XML
— count - количество товара;

delivery - доставка
— id - значение 62 - это доставка, любое другое значение - самовывоз; доставка осуществляется только в районы: Алуштинский район, Бахчисарайский район, Севастопольский район, Симферопольский район и Ялтинский район
— cost - стоимость доставки. Доставка бесплатно от 2000 руб, меньше 2000 руб. только самовывоз
— address - адрес доставки (заполняется при доставке)
— — city - город
— — street - улица
— — house - дом
— — housing - корпус/строение
— — flat - квартира.

Способ оплаты не задаётся в параметрах, он всегда "наличные при получении" и устанавливается на стороне сайта.

Пример успешного ответа

Array
(
    [status] => 0
    [order_id] => 59071
)

status = 0 - равно нулю (ошибок нет).

Примеры неуспешного ответа

Array
(
    [status] => 1
    [message] => Неизвестная ошибка при создании заказа
)

Array
(
    [status] => 2
    [message] => Ошибка создания заказа: (текст ошибки)
)

Array
(
    [status] => 3
    [message] => Ошибка создания нового пользователя: (текст ошибки)
)

Array
(
    [status] => 4
    [message] => Не указано имя пользователя, телефон или email
)

Array
(
    [status] => 5
    [message] => Не найден товар id=(id товара)
)


История заказов

POST /mobile-app/?method=getHistory HTTP/1.1
Host: darvin-market.ru
Accept: application/json
X-API-KEY: f325d46eec6390280f09398c2b915b8 (меняется от даты)
Content-Type: application/json

Параметры (phone и/или email) или (order_id) обязательны, при получении запроса проверяется наличие пользователя с таким phone либо email.
Если логин пользователя найдет возвращается история его заказов.
Если задан order_id, тогда email и phone необязательны.

Пример запроса (необходимо преобразовать в JSON)

Array
(
    [data] => Array
        (
            [phone] => 79001002030
            [email] => ivanov@mail.crt
        )

)

или

Array
(
    [data] => Array
        (
            [order_id] => 123456
        )

)

Пример запроса в виде JSON

{"data":{"phone":"79001002030","email":"ivanov@mail.crt"}}

или

{"data":{"order_id":123456}}

Пример ответа

Array
(
    [status] => 0
    [orders] => Array
        (
            [0] => Array
                (
                    [id] => 57440
                    [date_create] => 13.05.2021
                    [status] => Принят
                    [total] => 2635
                    [delivery_type] => Доставка курьером по Москве и МО (Курьерская служба Дарвин)
                    [delivery_address] => Россия, Истра, Ленина, дом 10, корпус 1, кв 120
                    [payment] => Array
                        (
                            [title] => Оплата онлайн
                            [total_cost] => 2635
                            [delivery_cost] => 290
                            [status] => не оплачен
                        )

                    [items] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 41596
                                    [name] => Торф верховой Фаско прессованный 100л
                                    [count] => 5
                                    [price] => 469
                                )

                        )

                )

            [1] => Array
                (
                    [id] => 57434
                    [date_create] => 13.05.2021
                    [status] => Отмена (Ошибочный заказ)
                    [total] => 2384
                    [delivery_type] => Доставка курьером по Москве и МО (Курьерская служба Дарвин)
                    [delivery_address] => Россия, Истра, Ленина, дом 10, корпус 1, кв 120
                    [payment] => Array
                        (
                            [title] => Оплата онлайн
                            [total_cost] => 2384
                            [delivery_cost] => 290
                            [status] => не оплачен
                        )

                    [items] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 41596
                                    [name] => Торф верховой Фаско прессованный 100л
                                    [count] => 2
                                    [price] => 469
                                )

                            [1] => Array
                                (
                                    [id] => 123425
                                    [name] => Грунт универсальный Дарвин с биогумусом 40л
                                    [count] => 2
                                    [price] => 279
                                )

                            [2] => Array
                                (
                                    [id] => 63894
                                    [name] => Грунт Для овощей Огородник 60л
                                    [count] => 2
                                    [price] => 299
                                )

                        )

                )

        )

)


Обратная связь

POST /mobile-app/?method=callback HTTP/1.1
Host: darvin-market.ru
Accept: application/json
X-API-KEY: f325d46eec6390280f09398c2b915b8 (меняется от даты)
Content-Type: application/json

Пример запроса (необходимо преобразовать в JSON)

Array
(
    [data] => Array
        (
            [name] => Иван Иванов
            [phone] => 79001002030
        )

)

Пример запроса в виде JSON

{"data":{"name":"Иван Иванов","phone":"79001002030"}}

Параметры

name - имя либо ФИО пользователя;
phone - номер телефона пользователя, например: 79001002030, +79001002030, 89001002030, 9001002030, 7 (900) 100-2030, +7 (900) 100-2030, 8 (900) 100-2030, (900) 100-2030.

Пример успешного ответа

Array
(
    [status] => 0
)

status = 0 - равно нулю (ошибок нет).

Пример неуспешного ответа

Array
(
    [status] => 1
    [error] => Error message
)

status = 1 - не равно нулю (код ошибки).