Skip to content

pay-logic/kiosk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 

Repository files navigation

PayLogicKiosk

Инициализация оплаты

Чтобы начать оплату, необходимо сформировать объект корзины и вызвать 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 символов, то при фискализации платежа поле автоматически будет обрезано до максимально допустимого значения
  • Идентификатор типа товара
  • Идентификатор налоговой ставки
    • Наименование поля: taxId
    • Тип: целое число
    • Обязательность: нет
    • Возможные значения: в соответствии с 54ФЗ (Значения реквизита "ставка НДС")
    • Значение по умолчанию: определяется из настроек справочника юр. лица. Если юр. лицо является плательщиком НДС, то берется ставка НДС 20% (1), иначе берется ставка Без НДС (6). Также значение может быть переопределено конфигурацией ПО киоска
  • Идентификатор типа оплаты
  • Цена
    • Наименование поля: 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

About

Публичное API для PayLogicKiosk

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published