Чтобы начать оплату, необходимо сформировать объект корзины и вызвать JavaScript метод PayLogicKiosk.makePayment(cart, paymentProps), где cart - объект корзины, paymentProps - платежные свойства.
Если не передать paymentProps, то будут действовать стандартные платежные свойства.
Для вызова метода не требуется подключения каких-либо библиотек. Данный метод будет доступен автоматически при открытии сайта через ПО платежного киоска.
После вызова метода будет сразу инициирован переход к оплате. Дальнейшая обработка всего процесса платежа, а также ошибок, осуществляется на стороне ПО платежного киоска.
Корзина
- Номер заказа
- Наименование поля: number
- Тип: строка
- Обязательность: нет
- Список атрибутов заказа
- Наименование поля: attributes
- Тип: массив объектов attribute
- Обязательность: нет
- Список позиций
- Наименование поля: items
- Тип: массив объектов item
- Обязательность: да
Примеры объектов:
{
number: 'D363-K',
attributes: [
{
key: 'phone',
value: '9123545566'
},
{
key: 'period',
value: '12'
}
],
items: [
{
name: 'Оплата МТС',
price: 20000,
subjectType: 4
}
]
}
{
number: '22RTV1457-55',
items: [
{
id: 'a9671480-09ce-4843-9656-be4691252873',
name: 'Чисбургер средний',
price: 10000,
count: 1000,
paymentMethod: 2
},
{
id: '12ec45be-43e7-4db3-96f7-960201e249cc',
subjectType: 1,
name: 'Кола большая',
price: 5000,
count: 1000,
taxId: 2
}
]
}
Атрибут заказа (attribute)
- Ключ атрибута
- Наименование поля: key
- Тип: строка
- Обязательность: да
- Заголовок атрибута
- Наименование поля: keyTitle
- Тип: строка
- Обязательность: нет
- Значение атрибута
- Наименование поля: value
- Тип: строка
- Обязательность: да
- Значение атрибута, выводимое при печати
- Наименование поля: valueTitle
- Тип: строка
- Обязательность: нет
- Флаги
- Наименование поля: flags
- Тип: число
- Обязательность: нет
- Значение по умолчанию: 0x00
Значения флагов
0x00 - Значение по умолчанию - флаг отсутствует
0x01 - Не показывать на экранах терминала
0x02 - Не выводить на печать на чеке
{
key: 'phone',
value: '9123545566'
}
{
key: 'deposit-id',
value: 'As6df4s-654adss4d-as54asd',
keyTitle: 'Идентификатор депозита',
flags: 2
}
{
key: 'phone',
keyTitle: 'Телефон',
value: '+79132500000',
valueTitle: '+7 (913) 250 00-00'
}
{
key: 'period',
value: '12'
}
Позиция (item)
- Идентификатор позиции
- Наименование поля: id
- Тип: строка
- Обязательность: нет
- Использование: для сопоставления позиции с внешними учетными системами
- Название позиции
- Наименование поля: name
- Тип: строка
- Обязательность: да
- Ограничения: 128 символов. Если будет передана строка длиной более 128 символов, то при фискализации платежа поле автоматически будет обрезано до максимально допустимого значения
- Идентификатор типа товара
- Наименование поля: subjectType
- Тип: целое число
- Обязательность: нет
- Возможные значения: в соответствии с 54ФЗ (Значения реквизита "признак предмета расчета")
- Значение по умолчанию: 1, если не переопределено конфигурацией ПО киоска
- Идентификатор налоговой ставки
- Наименование поля: taxId
- Тип: целое число
- Обязательность: нет
- Возможные значения: в соответствии с 54ФЗ (Значения реквизита "ставка НДС")
- Значение по умолчанию: определяется из настроек справочника юр. лица. Если юр. лицо является плательщиком НДС, то берется ставка НДС 20% (1), иначе берется ставка Без НДС (6). Также значение может быть переопределено конфигурацией ПО киоска
- Идентификатор типа оплаты
- Наименование поля: paymentMethod
- Тип: целое число
- Обязательность: нет
- Возможные значения: в соответствии с 54ФЗ (Значения реквизита "признак способа расчета")
- Значение по умолчанию: ПРЕДОПЛАТА 100% (1)
- Цена
- Наименование поля: price
- Тип: целое число
- Обязательность: да
- Особенности: в копейках и с учетом НДС, за 1 ед.
- Количество
- Наименование поля: count
- Тип: целое число
- Обязательность: нет
- Особенности: в граммах, если товар штучный необходимо указать 1000, 2000 и т.д.
- Значение по умолчанию: 1000
- Cумма по строке товарной позиции
- Наименование поля: sum
- Тип: целое число
- Обязательность: нет
- Особенности: В копейках. При погрешностях округления может быть больше, чем count * price, например: 3 * 0,33 = 1
{
id: 'a9671480-09ce-4843-9656-be4691252873',
name: 'Чисбургер средний',
subjectType: 1,
taxId: 2,
paymentMethod: 3,
price: 15000,
count: 1000
}
{
id: 'a9671480-09ce-4843-9656-be4691252873',
name: 'Чисбургер средний',
subjectType: 1,
taxId: 2,
paymentMethod: 3,
price: 100,
count: 3000,
sum: 33
}
Платёжные свойства (paymentProps)
- Допустимые методы оплаты (используется для фильтрации способов оплаты на киоске)
- Наименование поля: methods
- Тип: массив строк
- Обязательность: нет
- Допустимые значение: cash - наличные, card - банковская карта
- Тип выдаваемого документа
- Наименование поля: receiptType
- Тип: строка
- Обязательность: нет
- Допустимые значение: receipt - нефискальный документ (квитанция об оплате), fiscal - документ с фискализацией
{
methods: [
'cash',
'card'
],
receiptType: 'fiscal'
}
Базовый пример работы с API
CART - js-объект корзины PAYMENT_PROPS - js-объект платежных свойств $paymentButton - Кнопка оплаты
const $paymentButton = $('[js-payment-button]')
const CART = {
number: '22RTV1457-55',
items: [
{
id: 'a9671480-09ce-4843-9656-be4691252873',
name: 'Чисбургер средний',
price: 10000,
count: 1000,
paymentMethod: 2,
subjectType: 1,
taxId: 1
},
{
id: '12ec45be-43e7-4db3-96f7-960201e249cc',
name: 'Кола большая',
price: 5000,
count: 1000,
paymentMethod: 2,
subjectType: 1,
taxId: 1
}
]
}
const PAYMENT_PROPS = {
methods: [
'cash',
'card'
],
receiptType: 'fiscal'
}
$paymentButton.on('click', function () {
PayLogicKiosk.makePayment(CART,PAYMENT_PROPS)
})
Остальные примеры работы API доступны в директории examples