Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 

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

Releases

No releases published

Packages

No packages published