Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Zero Block
Click "Block Editor" to enter the edit mode. Use layers, shapes and customize adaptability. Everything is in your hands.
Tilda Publishing
create your own block from scratch
Інструкція по інтеграції банківських терміналів (плагін ECR)
Ця стаття описує підключення виключно банківських терміналів по протоколу BPOS1!

1. Від Syrve заявлено, що підтримуються: термінали Ingenico банків: ПриватБанк, ОщадБанк

2. Але направду, схоже, що це міф - бо Verifone від РайффайзенБанку теж підключали :)

3. Тому якщо термінал на протоколі BPOS1 - пробуємо підключати у будь-якому разі, але клієнта попереджаємо про п.1
Для налаштування знадобиться:
  • Ліцензія Checkout (в клаудних пакетах вона є по замовчуванню. Для ЛТ з клаудним UID - можна дозамовити)
  • Драйвер банківського терміналу
  • Бібліотека інтеграції банківського терміналу
  • Плагін (краще брати з папки відповідної версії Syrve, АЛЕ НЕ НИЖЧЕ 8.4!)
  • Емулятор для тесту зв'язку з терміналом, перевірки бібліотеки та драйвера
Все це добро (крім плагіна і ліцензії =) ) можна скачати, тикнувши сюди

Порядок налаштування наступний:

0) Закриваємо Front
1) (УВАГА! Виконуємо цей пункт ТІЛЬКИ в тому випадку, якщо банківський термінал підключається по USB!) Встановлюємо драйвер банківського терміналу. В ході встановлення просто натискаємо постійно далі. Після встановлення перезавантажуємо касу.
Якщо в СОМ компонентах немає явного номера порту, ОБОВ'ЯЗКОВО ВКАЗАТИ у параметрах Force Com port Device PID та номер порту (порт вибирати краще за межами реальних портів комп'ютера)

Щоб дізнатись Device PID, зайдіть в Диспетчер пристроїв, відкрийте властивості встановленого COM-компоненту (як правило називається Ingenico Telium (COMX)), перейдіть на вкладку Відомості, виберіть ІД обладнання. Останні 4 цифри - це і є те що нас цікавить

Всі подальші налаштування стосуються підключення як по USB, так і по Ethernet

2) Встановлюємо бібліотеку інтеграції POS терміналу

3) Підкидуємо папку з плагіном в плагіни фронту і відкриваємо конфігураційний файл Resto.Front.Api.ECRCommXPlugin.dll.config

4) В конфігу нам треба виправити деякі рядки.
Підемо з гори до низу
<setting name="UseMerchants" serializeAs="String">
	<value>False</value>
</setting>
Встановлюємо тут значення true, після чого заповнюємо наступний блок
<setting name="Merchants" serializeAs="Xml">
	<value>
		<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
			<string>-|-</string>
			<string>-|-</string>
		</ArrayOfString>
	</value>
</setting>
Тут треба вказати дані в ось такому форматі:
<string>Назва точки продажу (перший стовпчик в налаштуваннях кас в групі)|Х (номер мерчанта на банківському терміналі)</string>
1) Якщо мерчантів на банківському терміналі - 1, і кас в налаштуваннях групи теж 1 = прибираємо зайвий рядок і лишаємо тільки один з них.
2) Якщо мерчантів більше ніж 2 і кас, які їм відповідають теж більше ніж 2 = додаєжмо відповідну кількість рядків

ВАЖЛИВО!!!
У плагіна є ліміт по символам в цьому рядку, тому якщо назва точки продажу дуже велика = використовуйте запис posN, де N - це порядковий номер точки продажу в списку
Приклад:
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<string>пРРО Алко|1</string>
<string>pos2|2</string>
</ArrayOfString>

В цьому випадку назва точки продажу була пРРО Кухня ФОП Єсипович Є.Ю.
<setting name="MerchIdx" serializeAs="String">
	<value>2</value>
</setting>
Якщо мерчант на терміналі 1 - вказуємо явно його номер тут.
Якщо декілька - лишаємо як є вказуємо заздалегідь неіснуючий номер мерчанту, рекомендовано - вказувати номер мерчанту 99

Далі налаштування проводяться в залежності від того. як термінал підключений
4.1) Якщо термінал працює за допомогою підключення по USB - налаштовуємо наступним чином
<setting name="port" serializeAs="String">
	<value>номер порту (беремо з Диспетчеру пристроїв на кроці 1)</value>
</setting>
<setting name="use_ip" serializeAs="String">
	<value>False</value>
</setting>
4.2) Якщо термінал працює за допомогою підключення по TCP - налаштовуємо наступним чином
<setting name="port" serializeAs="String">
	<value>2000 (може бути інакший. Перепитувати у банку через клієнта)</value>
</setting>
<setting name="use_ip" serializeAs="String">
	<value>True</value>
</setting>
<setting name="ip" serializeAs="String">
	<value>192.168.0.50 (запитувати актуальний айпі у клієнта)</value>
</setting>
4.3) Якщо використовується декілька банківський терміналів на одній касі - робимо ось таке налаштування
<setting name="UseMultyTerminalSettings" serializeAs="String">
	<value>True (по замовчуванню False)</value>
</setting>
Після цього нам треба створити файлик termianlSettings.txt і додати в нього наступну структуру
[
  {
    "MerchantId": 1,
    "SlipCount": 2,
    "EmbedCheque": true,
    "PrintReceipt": true,
    "UseIP": false,
    "IP": "",
    "Port": 3,
    "Merchants": [
      {
        "Name": "Каса ТОВ",
        "Id": 1
      }
    ]
  }
]
Таку структуру треба повторити для кожного банківського терміналу, що буде працювати на цій касі, поставивши після кінця кожного блоку знак коми. Приклад:
[
  {
    "MerchantId": 1,
    "SlipCount": 2,
    "EmbedCheque": true,
    "PrintReceipt": true,
    "UseIP": false,
    "IP": "",
    "Port": 3,
    "Merchants": [
      {
        "Name": "Каса ТОВ",
        "Id": 1
      },
      {
        "Name": "Каса ФОП",
        "Id": 2
      }
    ]
  },
  {
    "MerchantId": 1,
    "SlipCount": 2,
    "EmbedCheque": true,
    "PrintReceipt": true,
    "UseIP": true,
    "IP": "192.168.0.56",
    "Port": 2000,
    "Merchants":[
      {
        "Name": "Каса ТОВ_1",
        "Id": 1
      },
      {
        "Name": "Каса ФОП_1",
        "Id": 2
      }
    ]
  }
]
Таку саму операцію треба виконати для блоку Merchants. Якщо їх на терміналі декілька - вказати через кому окремим блоком назву точки продажу та айді мерчанту. Приклад:
"Merchants": [
  {
    "Name": "Каса ТОВ",
    "Id": 1
  },
  {
    "Name": "Каса ФОП",
    "Id": 2
  }
]
Для розуміння що це за параметри, нижче даю таблицю з тим, що значить кожний параметр і як його треба заповнювати при різних варіантах підключення

5) Запускаємо Syrve POS для того щоб відмалювався безготівковий тип ECRCom Payment в Syrve Office

6) Налаштовуємо тип оплати для банківського терміналу

7) Запускаємо фронт і перевіряємо роботу. Profit))

Якщо щось не так

Перевірити в емуляторі для тесту зв'язку з терміналом, що все у вас класно.

Якщо ні - зателефонуйте до підтримки терміналів Приват Банку (Напрямок НЕ ПРАЦЮЄ ТЕРМІНАЛ - ПОРУЧ З ТЕРМІНАЛОМ). При дзвінку запросять номер терміналу (його знайти можна біля акумулятора) та мерчант (він з'являється на головному екрані, 8 буквоцифр типу S1123QU5).


Підтримку просити ОБНОВИТИ ПАРАМЕТРИ терміналу для зменшення таймауту від передачі запиту на зчитування картки до надходження цього запиту на сам термінал (це перший тайм-аут).