Интеграция Абонемент и RK7 через Farcards
Интеграция RK7 с Абонементом представляет собой следующую структурную схему (рис.1)
Рисунок 1
RKeeper при оплате на специальную валюту, например, "Закрытие на фолио Абонемента" в категории "платежные карты" обращается к FarCards, который вызывает подключенную к нему sdmHTTPFarCard.dll. Последняя dll обращается к ключу защиты и если лицензия найдена (проект 2 модуль 11), отправляется XML запрос на TCP/IP сервер - программу HTTPRKtoSH. Этот сервер обращается к базе данных через библиотеку ShelterConnect.dll
Интеграция проверялась на версии Абонемента 145+ с версией RK7 7.6.5.475.
- Версия FarCards 6.04
- Версия HttpToSH 1.5.0.1
- ShelterConnect 1.9.0.3
- sdmHTTPFarCard.dll 1.17.0.5
Подготовка утилит
1. FarCards
FarCards устанавливается на любом компьютере в одной сети с кассой и кассовым сервером. Если модуль лицензии прописан в одном ключе с Абонементом, то FarCards обязательно устанавливается на машину, где установлен этот ключ, как правило это сервер, в противном случае необходимо в настройках будет указать ip/port в секции [LOCK.SERVER] машины, где установлен сервер блокировок.
Настройка FARCARDS.INI
[FarServer]
Type = 1
DLL = sdmHTTPFarCard.dll
Gate = 1
log = 30
XMLCP=1251
[LinkDLL]
1 = pds_netk
[pds_netk]
NetServerName=rk_first
ininame=netk.ini
DebugMessages=1
NetServerName - серверное имя. Оно понадобиться в настройках PDS интерфейса RK7.
2. sdmHTTPFarCard.dll
[PARAMS]
ClientCode = HOTEL
UserCode = UCS
UserPwd = 12345
LangCode = RU
[SERVER]
Port =2277
Host =127.0.0.1
[LOCK.SERVER]
TCPHost = 81.94.140.196
TCPPort = 1116
Project = 2
Module = 11
[LOG]
FileName=HTTPFarCards_AB.log
Level = 100
DebugLevel = 100
2.3. HTTPRKtoSH.exe
[SERVER]
Port = 2277
RKInterfaceID=7
AllCheckToHotel = 1
IdentPhysType = 2
Autostart = 1
Autohide =1
[LOG]
FileName = C:\UCS\AbRK7_Example\HTTPtoAB\LOG\HTTPRKtoSH.log
Level = 30
DebugLevel =30
ByMonthes = 1
ByDays = 1
ByHours = 1
[MAIN]
messages=errors.msg
Секция [SERVER]
Port - порт, на который будут прилетать данные из sdmHTTPFarCard
RKInterfaceID - Код интерфейса в RK7
4. ShelterConnect.dll
ShelterConnect.ini настроечный файл ShelterConnect.dll, который управляет тем, в каком формате данные будут переданы во внешнюю систему.
[Database]
DBname = 81.94.140.196/3080:D:\Base\Garbage\n.kamyshnikova\Vpark2\FITNESS145.FDB
DBUser = ucs
DBPassword = oQKH8n0BFUE=
[ExternalClient]
ClientID = 1
IdentPhysType = 2
ConvertOperationNeed = 1
ToOEM = 0
NeverRestrictTransaction = 1
FolioMask = 1
ShowBalance = 0
ShowBalanceFirst = 0
RoomInfoMode =4
TransSection =0
ConvertOperationType=1
[log]
FileName = ShelterConnect.log
Level = 100
DebugLevel = 100
[GarbageCollector]
Enabled = 0
LifeTime = 120
[SCRK6]
AlcoholicOperation =999
Messages =sc.msg
UseScreenHeader0 =1
UseScreenHeader1 =1
UseScreenSequelCode =1
ShowBalance = 1
ShowBalanceFirst = 1
ShowBalanceEverywhere = 1
UseDetails = 1
UseSuperDetails = 1
[TranslateOperation]
1 = 888
3 = 888
[TranslatePayment]
1 = 1005,910
1000632 = 1005,901
8 = 1005,901
3 = 1005,901
;[Abonement]
;AbonementIdentCheckResource =ID_RESOURCE
[params]
Balance_ExtraParamStr = &USE_ABON_FREEBALANCE=1
Секция [DataBase] - параметры подключения к БД Абонемент
[ExternalClient]
ClientID = 1
IdentPhysType = 2 - тип физической карты в Абонементе
ConvertOperationNeed = 1 - использовать секцию [TranslateOperation]
ToOEM = 0 - настройка кодировки
NeverRestrictTransaction = 1 - ( разрешить закрывать на фолио выше кредитного лимита клиента) (баланс в RK будет отображаться, как 99999999999)
FolioMask = 1 - разрешить поиск по фолио ( в рк при оплате на фолио вместо карты можем ввести F#### ( #### - номер фолио))
ShowBalance = 0 - отобразить баланс гостя
ShowBalanceFirst = 0 - отобразить баланс гостя в начале
RoomInfoMode =4 -
TransSection =0
ConvertOperationType=1
Секция [SCRK6] не работает при данной схеме связки. Некоторые аналогичные параметры можно использовать в [ExternalClient]
[TranslateOperation]
;Таблица соответствия Кода групп станций r_k и создаваемой в Абонемент услуги.
Код можно посмотреть в RK7
Код услуги в Абонементе.