Виджет состоит из двух файлов, первый это JS файл в котором содержится основная логика, второй это CSS файл который необходим для корретного отображения виджета на странице
Чтобы виджет заработал на вашей странице, первым шагом необходимо скачать эти файлы. Ниже будут две кнопки, нажимая на них вы скачаете необходимые файлы
После того как вы скачаете стили, их необходимо добавить в проект и подключить к вашему html документу в head
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="ПУТЬ ДО СКАЧЕННОГО CSS ФАЙЛА" as="style" rel="stylesheet"/>
...
</head>
После того как вы скачаете скрипты, их необходимо добавить в проект и подключить к вашему html документу перед закрывающимся тегом body
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="ПУТЬ ДО СКАЧЕННОГО CSS ФАЙЛА" as="style" rel="stylesheet"/>
...
</head>
<body>
...
<script src="ПУТЬ ДО СКАЧЕННОГО JS ФАЙЛА" />
</body>
</html>
После того как подключите css файл и js файл необходимо настроить конфиг и передать в него необходимые параметры. Сам конфиг мы описываем перед скриптом. Описание параметров можно увидеть ниже.
<html>
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="ПУТЬ ДО СКАЧЕННОГО CSS ФАЙЛА" as="style" rel="stylesheet"/>
...
</head>
<body>
...
<script>
const iawDefault = {
merchant: 'WIDGET',
btnId: 'iawBtn',
customer: {
email: "customer@mail.ru"
},
bundle: {
fiscalInfo: {
clientEmail: "client_email@yandex.ru"
},
items: [
{
positionId: 1,
name: "Обеденный стол",
code: "арт.4957686074846",
description: "Стол барный Dorian 11770",
shippable: true,
price: 777.0,
measure: 0,
quantity: 1,
mass: 2400,
taxParams: {
taxType: "vat20"
},
paymentType: "full_prepayment",
paymentSubject: 1,
amount: 777.0,
discount: 0,
userData: "Дополнительный реквизит предмета расчета"
}
]
}
};
</script>
<script src="ПУТЬ ДО СКАЧЕННОГО JS ФАЙЛА" />
</body>
</html>
| Параметр | Вложенный параметр 1 | Вложенный параметр 2 | Вложенный параметр 3 | Url/body/header | Обязательность | Тип | Формат | Длина | Nullable | Описание | Комментарий |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Merchant-Host | Header | Нет | String | n/a | n/a | n/a | Указывается значение host, и другая служебная информация передаваемая браузером | ||||
| Merchant-Authorization | Header | Нет | String | n/a | n/a | n/a | Необязательный HTTP-заголовок, который используется в запросах к API для дополнительной аутентификации ресурса мерчанта... | Обязателен к передаче один из этих параметров: codeOffice — только для виджета Вод Крыма Merchant-Authorization — для Тильды и остальных |
|||
| codeOffice | Header | Нет | String | n/a | n/a | n/a | Код филиала (только для Вод Крыма) | Обязателен к передаче один из этих параметров: codeOffice — только для виджета Вод Крыма Merchant-Authorization — для Тильды и остальных |
|||
| orderId | Body | Да | String | Byte | 64 | Уникальный идентификатор ордера в системе мерчанта | Если мерчант не передал этот параметр, то указать в файле js Виджета следующий алгоритм:Подставлять значение из: Префикс <дата+ час+минута +секунда+миллисекунда timestamp>Префикс= WTWT сокращение от WIDGETtimestamp "2023-05-16T11:59:17.000+00:00")Пример:WT20230516115917000 | ||||
| orderName | Body | Да | String | Byte | 255 | Наименование ордера в системе мерчанта | Если мерчант не передал этот параметр, то указать в файле js Виджета следующий алгоритм:Заказ №<orderId> > | ||||
| expire | Body | Нет | String | date-time | 32 | Срок жизни ордера | |||||
| returnPaymentData | Body | Нет | String | enum: -sbp | Вернуть данные для осуществления платежа дополнительными способами оплаты | ||||||
| customer | Body | Нет | Object | Данные о клиенте | |||||||
| Body | Нет | String | Byte | 255 | Электронный адрес клиента (в формате email) | ||||||
| amount | Body | Да | Object | Объект суммы | |||||||
| value | Body | Да | Number | minimum: 0; maximum: 10000000000; | Сумма | ||||||
| code | Body | Да | String | enum: - RUB | Валюта | ||||||
| returnUrl | Body | Нет | String | Byte | 255 | False | URL-адрес фронт системы ТСП для переадресации клиента в случае успешной/неуспешной оплаты | ||||
| bundle | Body | Нет | Object | False | Объект товарной корзины | ||||||
| fiscalInfo | Body | Нет | Object | False | Объект с параметрами фискализации | ||||||
| clientEmail | Body | Нет | String | Byte | 255 | False | Email клиента для отправки фискального чека | ||||
| discount | Body | Нет | BigDecimal | Number | minimum: 0; maximum:42949672.95; | False | Общая сумма скидки | |||||
| items | Body | Да | Array | False | Массив с экземплярами товарной корзины | ||||||
| positionId | Body | Да | Integer | minimum: 1; maximum: 250; | False | Порядковый номер позиции единицы товара.ФН имеет аппаратное ограничение 32768 байт для каждого финансового документа в двоичной форме. Это ограничение размера документа предусматривает около 250 позиций товарной корзины в чеке. ФН отклонит создание чека, если будет превышено ограничение 32768 байт. Рекомендуется использовать не более 250 позиций в корзине. | Предусмотреть в файле js Виджета счетчик нумерации товарных позиций | ||||
| name | Body | Да | String | Byte | False | Наименование товара, работы, услуги, платежа, выплаты, иного предмета расчета. | |||||
| code | Body | Нет | String | Byte | False | Уникальный код товара (Артикул) | |||||
| description | Body | Нет | String | Byte | False | Описание единицы товара | |||||
| shippable | Body | Нет | Boolean | False | Признак доставляемости товара | ||||||
| price | Body | Да | Number | minimum: 0; maximum:42949672.95; | False | Цена за единицу товара, работы, услуги, платежа, выплаты, иного предмета расчета с учетом скидок и наценок. Цена в рублях:• целая часть не более 8 знаков;• дробная часть не более 2 знаков.Максимальное значение цены – 42 949 672.95.При этом произведение цены и количество/веса (price*quantity) позиции должно быть не больше максимального значения цены позиции. | |||||
| measure | Body | Да | Integer | enum:- 0- 10- 11- 12- 20- 21- 22- 30- 31- 32- 40- 41- 42- 50- 51- 70- 71- 72- 73- 80- 81- 82- 83-255 | False | Единицы измерения количества предмета расчета. Может принимать одно из значений:• 0 - Применяется для предметов расчета, которые могут быть реализованы поштучно или единицами• 10 - Грамм• 11 - Килограмм• 12 - Тонна• 20 - Сантиметр• 21 - Дециметр• 22 - Метр• 30 - Квадратный сантиметр• 31 - Квадратный дециметр• 32 - Квадратный метр• 40 - Миллилитр• 41 - Литр• 42 - Кубический метр• 50 - Киловатт час• 51 - Гигакалория• 70 - Сутки (день)• 71 - Час• 72 - Минута• 73 - Секунда• 80 - Килобайт• 81 - Мегабайт• 82 - Гигабайт• 83 - Терабайт• 255 - Применяется при использовании иных единиц измерения | |||||
| quantity | Body | Да | Number | minimum: 0; maximum:99999.999; | False | Количество/вес.Правила валидации:- Целая часть не более 5 знаков;- дробная часть не более 3 знаков.- Максимальное значение – 99 999.999 | |||||
| taxParams | Body | Да | Object | False | Объект с параметрами налогообложения | ||||||
| taxType | Body | Да | String | enum:- none- vat0- vat10- vat110- vat20- vat120 | False | Ставка налогообложения.Устанавливает номер налога в ККТ.Перечисление со значениями:•«none» – без НДС;• «vat0» – НДС по ставке 0%;• «vat10» – НДС чека по ставке 10%;• «vat110» – НДС чека по расчетной ставке 10/110;• «vat20» – НДС чека по ставке 20%;• «vat120» – НДС чека по расчетной ставке 20/120. | |||||
| taxSum | Body | Да | Number | False | Сумма налога позиции в рублях.• целая часть не более 8 знаков;• дробная часть не более 2 знаков. | ||||||
| paymentType | Body | Нет | String | enum:- full_prepayment- prepayment- advance- full_payment- partial_payment- credit- credit_paymen | False | Признак способа расчёта.Возможные значения:• «full_prepayment» – предоплата 100%. Полная предварительная оплата до момента передачи предмета расчета• «prepayment» – предоплата. Частичная предварительная оплата до момента передачи предмета расчета. • «advance» – аванс.• «full_payment» – полный расчет. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчета• «partial_payment» – частичный расчет и кредит. Частичная оплата предмета расчета в момент его передачи с последующей оплатой в кредит• «credit» – передача в кредит. Передача предмета расчета без его оплаты в момент его передачи с последующей оплатой в кредит• «credit_payment» – оплата кредита. Оплата предмета расчета после его передачи с оплатой в кредит (оплата кредита) | |||||
| paymentSubject | Body | Нет | Number | enum:- 1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- 16- 17- 18- 19- 20- 21- 22- 23- 24- 25- 26- 27- 30- 31- 32- 33 | False | Признак предмета расчёта.Должен принимать одно из значений:• 1 - о реализуемом товаре, за исключением подакцизного товара и товара, подлежащего маркировке средствами идентификации (наименование и иные сведения, описывающие товар) работе (наименование и иные сведения, описывающие работу);• 2 - о реализуемом подакцизном товаре, за исключением товара, подлежащего маркировке средствами идентификации (наименование и иные сведения, описывающие товар);• 3 - о выполняемой работе (наименование и иные сведения, описывающие работу);• 4 - об оказываемой услуге (наименование и иные сведения, описывающие услугу);• 5 - о приеме ставок при осуществлении деятельности по проведению азартных игр;• 6 - о выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению азартных игр;• 7 - о приеме денежных средств при реализации лотерейных билетов, электронных лотерейных билетов, приеме лотерейных ставок при осуществлении деятельности по проведению лотерей;• 8 - о выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению лотерей;• 9 - о предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации;• 10 - об авансе, задатке, предоплате, кредите;• 11 - о вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом;• 12 - о взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета;• 13 - о предмете расчета, не относящемуся к предметам расчета, которым может быть присвоено значение от «1» до «11» и от «14» до «26» • 14 - о передаче имущественных прав;• 14 - о передаче имущественных прав.• 15 - о внереализационном доходе;• 16 - о суммах расходов, платежей и взносов, указанных в подпунктах 2 и 3 пункта Налогового кодекса Российской Федерации, уменьшающих сумму налога;• 17 - о суммах уплаченного торгового сбора;• 18 - о курортном сборе;• 19 - о залоге;• 20 - о суммах произведенных расходов в соответствии со статьей 346.16 Налогового кодекса Российской Федерации, уменьшающих доход;• 21 - о страховых взносах на обязательное пенсионное страхование, уплачиваемых ИП, не производящими выплаты и иные вознаграждения физическим лицам;• 22 - о страховых взносах на обязательное пенсионное страхование, уплачиваемых организациями и ИП, производящими выплаты и иные вознаграждения физическим лицам;• 23 - о страховых взносах на обязательное медицинское страхование, уплачиваемых ИП, не производящими выплаты и иные вознаграждения физическим лицам;• 24 - о страховых взносах на обязательное медицинское страхование, уплачиваемые организациями и ИП, производящими выплаты и иные вознаграждения физическим лицам;• 25 - о страховых взносах на обязательное социальное страхование на случай временной нетрудоспособности и в связи с материнством, на обязательное социальное страхование от несчастных случаев на производстве и профессиональных заболеваний;• 26 - о приеме и выплате денежных средств при осуществлении казино и залами игровых автоматов расчетов с использованием обменных знаков игорного заведения;• 27 - о выдаче денежных средств банковским платежным агентом;• 30 - о реализуемом подакцизном товаре, подлежащем маркировке средством идентификации, не имеющем кода маркировки;• 31 - о реализуемом подакцизном товаре, подлежащем маркировке средством идентификации, имеющем код маркировки;• 32 - о реализуемом товаре, подлежащем маркировке средством идентификации, не имеющем кода маркировки, за исключением подакцизного товара;• 33 - о реализуемом товаре, подлежащем маркировке средством идентификации, имеющем код маркировки, за исключением подакцизного товара. | |||||
| amount | Body | Да | Number | minimum: 0 maximum: 42949672.95 | False | Итоговая стоимость предмета расчета с учетом скидок и наценок (в рублях). Правила валидации:• целая часть не более 8 знаков;• дробная часть не более 2 знаков.Максимальное значение – 42 949 672.95.Значение реквизита «стоимость предмета расчета с учетом скидок и наценок» должно быть равно произведению значения реквизита «цена за единицу предмета расчета с учетом скидок и наценок», умноженному на значение реквизита «количество предмета расчета». | |||||
| discount | Body | Нет | Number | minimum: 0 maximum: 42949672.95 | False | Сумма скидки | |||||
| userData | Body | Нет | String | Byte | False | Дополнительный реквизит предмета расчета. Например, любой сквозной идентификатор в системе мерчанта | |||||
| mass | Body | Нет | Number | True | Масса продукта в граммах | ||||||
| incomingRegisterOrderChannel | Body | Нет | String | 255 | True | Канал, откуда пришел запрос на создание заказа | По умолчанию передавать: WIDGET | ||||
| vodaCrimeaBillingSpecifics | Body | Нет | Object | False | ТОЛЬКО ДЛЯ ВОДЫ КРЫМА | ||||||
| invoiceId | Body | Нет | String | 255 | False | Платежные реквизиты для проверки в ТСП. Формат поля зависит от филиала и ЛК, через который проходила оплата.Если оплата проходила через общий ЛК Воды Крыма по филиалу Саки или Джанкой, то значение поля будет в формате:"<номер лицевого счета> |
передает виджет, который забирает значение для invoiceId из html страницы заказчикаТОЛЬКО ДЛЯ ВОДЫ КРЫМА | ||||
| accountId | Body | Нет | String | 255 | True | Идентификатор абонента. Заполняется только для филиалов Саки и Джанкой. Формат поля зависит от ЛК, через который проходила оплата.Если оплата проходила через общий ЛК Воды Крыма по филиалу Саки или Джанкой, то значение поля будет в формате:"999<лицевой счет абонента>"В случае оплаты непосредственно из ЛК Саки или Джанкой, значение поля будет в формате: "<код абонента>" | передает виджет, который забирает значение для accountId из html страницы заказчикаТОЛЬКО ДЛЯ ВОДЫ КРЫМА |