Последнее изменение статьи: 19.08.2025 18:15 Link to 
Последнее изменение статьи: 19.08.2025 18:15

ОписаниеLink to Описание

Назначение в WSA v1Оплатить заказ по ключам Objectid+OrderGuid на основе предоплаты. Если передаем валют больше, чем надо для оплаты заказа, то такой платеж не принимаем. Отдаем как ошибку
Назначение в WSA v2Оплатить заказ по ключам Objectid+OrderGuid на основе оплаты. Если передаем денег больше или меньше, чем надо для оплаты заказа, то такой платеж не принимаем. Отдаем как ошибку
Тип запросаАсинхронный/синхронный
Поддерживаемая версия агента

v1, v2

PluggetSystemTypeRKMid

ОсобенностиLink to Особенности

Если оплата 100% скидкой, то требуется передавать эту оплату без одной копейки

Формат запросаLink to Формат запроса

{
    "taskType": "PayOrder",
    "params": {
      "async": {
        "objectId": number,
         "timeout": number
      },
      "sync": {
        "objectId": number,
         "timeout": number
      },
        "cashStationId": number,
        "orderGuid": "guid",
        "payments": [
        {
            "amount": number,
            "currency": "guid"
            "cardCode": "string"
        }],
        "isFullOrderRequired": bool,
        "cashierId": number
   }
}
JSON

Описание параметров

Параметр
Тип
Обязательный
Описание
taskType

Тип задачи
async

Асинхронный метод
sync

Синхронный вызов метода (либо синхронный, либо асинхронный)
|- timeoutint-Время ожидания ответа от агента в секундах, по умолчанию 120 секунд
|- objectIdint+Код ресторана в системе лицензирования
isFullOrderRequiredbool-Если true - возвращается весь заказ
orderGuidguid+Guid заказа по которому требуется провести оплату
paymentsarray+/-Массив данных по оплате
Если распечатан чек намерения (при работе r_keeper в режиме работы "Чек намерения оплаты"), то не указываем
|- amountstring+значение суммы на оплату. Разделителем целой и дробной части суммы должна быть точка.
|- currencystring+guid валюты
|-cardCodestring-Код карты лояльности
cashierIdint-Идентификатор кассира. Если не указан, применяется кассир в соответствии с настройками ресторана в  административной панели
cashStationIdint-Id кассовой станции. Если не указан, берется из параметров ресторана установленных в административной панели WS. При указании кассовой станции с mid, отличного от выбранного в "параметрах создания заказа", указываем этот mid в поле systemName Маршрутизация запросов

Формат ответаLink to Формат ответа

{ 
   "responseCommon":{ 
      "taskGuid":"guid",
      "taskType":"PayOrder",
      "objectId": number
   },
   "error":{ 
      "wsError":{ 
         "code":"string",
         "desc":"string"
      }
   }
}
JSON
Параметр
Тип
Описание
taskGuidguidУникальный код этой задачи используется при получении задачи через очередь
taskTypestring enumТип задачи
objectIdintКод ресторана в системе лицензирования
error
Контейнер ошибок, внутри детализация по связанным системам
- wsError
Ошибки, получаемые от сервиса WhiteServer
– codestringКод ошибки
– descstringОписание ошибки

Формат асинхронного ответаLink to Формат асинхронного ответа

// Успешный ответ (значит, предоплата прошла!), детальная инфа о заказе не запрошена
// Успешный ответ (значит, предоплата прошла!), детальная инфа о заказе не запрошена
{
  "taskResponse": {
     "order": {
      "status": {
        "value": string,
        "isBillPrinted": false
      },       
        "price": {
           "total": number,
           "summToPay": number
        }
     }
  },
  "responseCommon": {
    "taskGuid": "string",
    "taskType": "PayOrder",
    "objectId": number
  }
}
 
// Успешный ответ (значит, оплата прошла!), запрошен весь заказ
{
  "taskResponse": {
     "order": {
        "originalOrderId": "string",
        "createdAt": "2008-10-17T00:00:00",
        "status": {
           "value": "string"
        },
        "delivery": {
           "expectedTime": "2008-10-17T00:00:00"
        },
        "products": [
           { // простой вариант
             "ingredients": [
                 {
                   "id": "string",
                   "name": "string",
                   "quantity": "number"
                 }
             ],
             "voidingReason":"string",
             "id": "string",
             "name": "string",
             "price": "string",
             "quantity": number
          }
        ],
        "comment": "string",
        "personsQuantity": number
        "appliedPayments": [ // только WSA 2
        {
            "amount": number,
            "guid": "guid",
            "payType": "enum"
        }],
        "price": {
           "total": number,
           "summToPay": number
        }
     }
  },
  "responseCommon": {
    "taskGuid": "string",
    "taskType": "PayOrder",
    "objectId": number
  }
}
 
// Ответ с ошибкой
{
  "responseCommon": {
    "taskGuid": "string",
    "taskType": "PayOrder",
    "objectId": number
  },
  "error": {
    "wsError": {
      "code": "string",
      "desc": "string"
    },
    "agentError": {
      "code": "string",
      "desc": "string"
    }
  }
}
JSON

Параметр

Тип параметра

Обязательный

Описание

order
да
originalOrderIdstring
guid заказа, переданного в запросе
status.valuestring

Статус заказа

status.isBillPrintedbool
Флаг, показывающий, распечатан ли пречек заказа.
delivery. expectedTimeDateTime
К какому времени приготовить заказ
productsarrayдаСостав заказа
- idguidдаИдентификатор блюда
- namestring
Название блюда
- quantityintдаКол-во блюд
- voidingReasonstring
Причина удаления блюда из заказа (только агент v2)
- ingredientsarray
Ингредиенты или состав комбо-блюда
– idguidдаИдентификатор ингредиента
commentstring
Комментарий к заказу
appliedPayments

Оплаты и предоплаты. (только WSA 2)

- amount

money+Значение суммы на оплату. Разделителем целой и дробной части суммы должна быть точка. 
- guidguid+

Уникальный идентификатор факта оплаты (поле line_Guid от R-Keeper)

- payTypeenum+

Тип оплаты: Cash, Card, Unknown.

price.totalmoneyдаПолная стоимость заказа
price.summToPaymoney
сколько надо доплатить для погашения стоимости заказа
personsQuantityint
Количество персон
waiterIdint
Код официанта (только агент v2)
errorstring enum
Контейнер ошибок, см Описание ошибок
- wsErrorstring enum
Ошибка Whiteserver
– codestring
Код ошибки
– extCodestring
Расширенный код ошибки
– descstring
Описание ошибки
- agentErrorstring enum
Ошибка от агента.
– codestring

Кроме существующих, появятся такие коды ошибок (в старом агенте - цифрами):



OrderIsLockedзаказ заблокирован
OrderIsClosedзаказ закрыт

PaymentIsMoreThanTotalPrice

оплата передана больше, чем стоимость заказа
– descstring
Описание ошибки