Настройка связи с ISD
Ниже описан процесс связи 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 и спец. программы.
Списание бонусов
- Для того что бы списывать средства с бонусного счёта владельца карты «ISD», необходимо в настройках r_keeper_7, выставить значение «Спрашивать», для настройки «оплата платёжной картой».

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

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

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


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


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

Списание жетонов
- Создать валюту в 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