Ниже описан процесс связи r_keeper_7 cо считывателем карт для считывания карт с кодом ISD. Связь настраивается с помощью Farcards, поддерживающего 29 протокол.

Порядок настройки

1. На вкладку "устройства" кассового сервера добавляется драйвер интерфейса PDS, ему задается имя. В нашем случае - это PDS01FIN (см рис.1).

Рис.1 ПДС интерфейс на кассовом сервере

2. Кассовой станции добавляется драйвер для считывателя RS232 (см.рис.2).

Рис.2 Порт и драйвер для считывателя

Примечание: если у вас не получается настроить считыватель на кассе, то возможно потребуется сменить номер COM-порта на любой в диапазоне от 1 до 9 включительно.

3. Делаем копию логического PDS-интерфейса в интерфейсах. Связываем интерфейс с драйвером (см. рис. 3).

Рис.3 Настройка логического интерфейса

4. Создаем MCR-алгоритм, тип - скрипт. Связываем с интерфейсом из п.3(см. рис.4).

Рис.4 Настройка MCR-алгоритма

Содержание скрипта, представленное ниже, вставить после 1-й строки function MCR10000XXX(DeviceSignal: Integer; DeviceIdent: Integer; var Parameter: String): Boolean;

Первая строка (объявление функции) для каждого MCR-алгоритма уникальна и не подлежит редактированию!

var RestCode: integer;
begin

{ ISD=1234567890123456 }
if pos('ISD=', Parameter) = 1 then begin
delete(Parameter, 1, 4);
parameter := '$'+parameter;
Result := true;
end; 
end;

5. Создаем валюту в Платежных картах. В нашем случае - это ISD-оплата (см. рис. 5). В валюте ISD-оплата указывается Автозаполнение: "Вся сумма", Доп. инфо с клавиатуры, Интерфейс: ISD. Остальное не имеет значения, т.к. буквы с клавиатуры всё-равно не введете (в номере ISD могут быть буквы).

Рис.5 Настройка валюты

6. Выставляем у параметра "оплата платежной картой" значение "спрашивать" (см. рис. 6).

Рис.6 Настройка параметра "Оплата платежной картой"

7. Устанавливаем FarCards 6.01 (с 29 протоколом). В FarCards.ini прописываем, что будем использовать библиотеку ISD_FarCard.dll. Драйвер для ISD берется у компании ISD.

Пример заполнения Farcards.ini:

[FarServer]
Type = 1
DLL = ISD_FarCard.dll
Gate = 1
CloseMins=5
log=10
Log_Level = 10
[LinkDLL]
1 = RNBOPen
2 = RLocal
3 = PDS_NETK
[RTcp]
Client1 = Дальний Ресторан
Server1 = 127.0.0.1
Port1 = 2222
[RNBOpen]
APServer = AServ
[RLocal]
Port = 0
[pds_netk] 
;; секция параметров связи с R-Keeper
NetServerName=PDS01FIN
ininame=netk.ini ;; имя отдельного инициализационного файла с настройками netkern и протоколов
log=10
Log_Level = 10

Структура файлов для Farcards изображена на рис. 7.

Рис.7 Структура файлов

8. Далее настраивается часть со стороны ISD: клиент oracle и спец. программы.

Списание бонусов

  1. Для того что бы списывать средства с бонусного счёта владельца карты «ISD», необходимо в настройках r_keeper_7, выставить значение «Спрашивать», для настройки «оплата платёжной картой».

  1. Создать валюту в «r_keeper_7», в свойствах которой, указать код транзакции со значением «10» (должно соответствовать значению «TransKind_Bonus=10», в «isd_fc.ini»). Субсчётом FarCards, со значением «3». Максимальным значением процента списания средств, с бонусного счёта владельца карты «ISD», которое можно списать при оплате заказа в r_keeper_7. 

  1. Указать код типу бонусов в r_keeper_7, для того что бы привязать его к коду в системе «ISD» (не обязательная настройка!)

Процесс списания бонусов, на кассе r_keeper_7

(Внимание! Баланс бонусов, в информационном окне r_keeper_7, по карте владельца, не отображается и это нормально! Информация по балансу, будет отображена в чеке!)

Чтобы не передавать детализированную информацию по чеку в ISD,(для корректного начисления бонусов, необходимо установить флаг "Не учитывать в потратах ПДС" для соответствующей валюты.

Списание жетонов

  1. Создать валюту в r_keeper_7, в свойствах которой, указать код транзакции со значением «0», Субсчётом FarCards, со значением «1». Максимальным значением процента списания средств, с жетонного счёта владельца карты «ISD», которое можно списать при оплате заказа в r_keeper_7.

Процесс списания жетонов, на кассе «RK»

Чтобы не передавать детализированную информацию по чеку в ISD,(для корректного начисления бонусов, необходимо установить флаг "Не учитывать в потратах ПДС" для соответствующей валюты.

Настройки «isd_fc.ini» (пример)

[init]

User=admin

Database=ORA01_TEST

PassData=6E6E

ValetNo=0

TransKind_Tokens=0

TransKind_Account=9

TransKind_Bonus=10

TransKind_TokensAdd=11

ValidateZoneEntrance=0

ANSI2OEM=1

UseShortMediaNum=0

ZoneNum=

ReaderPort=

ReaderAddress=0

ReaderType=0

LogFileDir=C:\RK7\farcards\log_isd

OverrideBonusID=0

BonusID=3



Тикет, с подробным обсуждением данных настроек - http://tracker.ucs.ru/issues/134636

Начисление бонусов, средствами r_keeper_7 на счет владельца карты ISD не реализован и настраивается в самом процессинге ISD