===== Установка и настройка =====
==== PDSSMS ====
Поставляется в виде архивированной сборки всех необходимых для работы файлов:
* cardimp.exe - Модуль для активации карты в системе ПДС
* cardimp.ini - Файл конфигурации модуля CardImp
* CscLink.dll - Библиотека для соединения с CARDSERV
* CscLink.ini - Файл конфигурации CscLink
* RTCP.dll - Библиотека сетевого протокола для связи с CARDSERV
* *sms.dll* - Библиотека, в которой реализовано API СМС провайдера
* *sms.ini* - Файл конфигурации sms.dll
* PDSSMS.exe - Исполняемый файл главного модуля
* config.ini - Файл конфигурации главного модуля
* LicSystem.dll - Библиотека системы лицензирования
* Server.bin - Служебный файл.
* **sms.dll** - На данный момент в поставку включена библиотека sms_smsc.dll, реализующая API SMS провайдера [[https://smsc.ru/?pp336049|smsc.ru]] \\
Интеграция с другими SMS провайдерами возможна, но обсуждается отдельно.
=== CscLink.ini и cardimp.ini ===
В двух этих файлах необходимо задать значения одних и тех же параметров: IP адрес CARDSERV и порт протокола RTcp. Файлы имеют практически идентичную структуру за небольшими исключениями.
Пример структуры файла с комментариями:
[Settings] \\ CSLinkDLL = RTcp ;библиотека соединения с CARDSERV(поставляется в комплекте)(не требует редактирования) \\ CSLinkGate=1 ;служебный параметр(не требует редактирования)
[RTcp] \\ Server1=127.0.0.1 ;IP адрес компьютера, на котором работает CARDSERV \\ Client1=CscLink ;имя клиента. Любое уникальное для клиентского компьютера (не требует редактирования) \\ Port1=3456 ; порт протокола RTcp у CARDSERV (должен быть включен в CARDSERV)
После настройки CscLink.dll и cardimp.exe можно перейти к конфигурации PDSSMS
=== config.ini ===
Содержит в себе конфигурационные параметры для модуля PDSSMS.exe
[SERVER]
;Локальный порт модуля (Listen)
LocalPort=11000
;Имя файла библиотеки для отправки смс (может отличаться в зависимости от провайдера)
SmsDll=sms_smsc.dll
[PDS]
;имя пользователя для подключения к CARDSERV. Должен иметь доступ к редактированию счетов в Pcards!
;Рекомендуется создать отдельного пользователя, т.к. учетка ucs по умолчанию не редактирует счета.
User=ucs
;пароль пользователя для подключения к CARDSERV
Pass=ucs
;время жизни невостребованного ПИН кода в минутах
PinLifeTime=10
;Шаблон СМС сообщения для гостя
;Строка "[PIN]" будет заменена на сгенерированный пин-код авторизации.
;Текст может быть как до "[PIN]", так и после
;Сочетание символов "/n" будет заменено на перенос строки
Message=Ваш код авторизации: [PIN]
[LOG]
;Уровень логирования (-1 - не писать, 0 - ошибки, 1 - ошибки и критические,>1 - режим отладки )
LogLevel=1
;Срок хранения .log файлов в днях
OldLogs=7
**Пример значения параметра Message**
**Значение параметра**
Message=Ресторан "Рога и Копыта"/nВаш код авторизации: [PIN]/nХорошего дня!
**Сообщение для гостя**
Ресторан "Рога и Копыта"
Ваш код авторизации: 3214
Хорошего дня!
**Помните, что большинство СМС операторов ограничивают длину сообщения. Превышение лимита приведет к отправке двух и более сообщений, каждое из которых оплачивается согласно текущему тарифу.**
Помимо конфигурации выше описанных модулей, потребуется так же настроить библиотеку для отправки СМС для конкретного выбранного провайдера. Подробнее читайте на странице **sms_dll**
----
==== Лицензирование ====
Модуль SMSPDS распространяется на условиях LifeTime лицензии с использованием системы лицензирования ГК "Карбис".
Для того что бы первично пролицензировать модуль у клиента необходимо выполнить запуск
PDSSMS.exe /desktop
**ВАЖНО!** \\ Дальнейшее **продление лицензии** на модуль "СМС-ПДС" делается **ТОЛЬКО** через сайт лицензирования ([[:lic:lic|Описание системы лицензирования lic.carbis.ru]])
----
==== Настройки RK7 ====
Установка модуля SMSPDS подразумевает, что связь между RK7 и CARDSERV уже настроена и готова к работе.
Исходя из этого настройка RK7 для работы с SMSPDS сводится к добавлению двух скриптов и одного MCR алгоритма.
=== Скрипт PDS_Activate ===
- В менеджерской станции перейти в меню "Сервис > Скрипты"
- В группе скриптов "Операции" добавить скрипт PDS_Activate
- Добавить содержимое скрипта:
var
card_num: String;
fio, fio2 : String;
date : String;
tel: String;
flag, i: Integer;
res: String;
addr:string;
begin
flag:=0;
addr := '192.168.1.7:11000';
card_num := gui.InputBox('Номер Карты', 'Введите номер карты, выдаваемой Гостю', '', true);
fio := gui.InputBox('ФИО Гостя', 'Введите ФИО Гостя', '', false);
date := gui.InputBox('Дата рождения (дд.мм.гггг)', '', '', true);
while flag = 0 do
begin
tel := gui.InputBox('Номер Телефона (7-ХХХ-ХХХ-ХХ-ХХ)', 'Введите номер Телефона ', '', true);
if Length(tel) <> 11 then
gui.ShowMessage('Не верный номер телефона!!!');
flag:=1;
end;
flag := gui.MessageDlgEx('Карта: '+card_num+#10+'ФИО: '+fio+#10+'Дата рождения: '+date+#10+
'Телефон: '+tel, mtConfirmation, mbYes+mbNo, 'Добавить; Отмена');
if flag = 6 then // это "Ок"
begin
fio2 := '';
for i := 1 to Length(fio) do
begin
fio2 := fio2 + IntToStr(Ord(fio[i]))+'_';
end;
if HttpGet('http://'+addr+'/setcard?card_num='+card_num+'&fio='+fio2+'&date='+date+'&tel='+tel, res) = 0 then
begin
if pos('', res)> 0 then
gui.showmessage(res)
else if pos('OK',res)> 0 then
gui.showmessage('Карта успешно добавлена!')
else
GUI.ShowMessage('Ответ сервера: '+res);
end;
end;
end;
После создания скрипта нужно отредактировать значение переменной addr, заданное в начале скрипта. \\ Необходимо ввести IP адрес и listen порт модуля PDSSMS.exe через двоеточие.
=== Скрипт PDS_Authorize ===
Повторить действия 1-3 из PDS_Activate, но задать имя скрипта "PDS_Authorize"
Содержимое скрипта:
var
card: String;
tel : String;
pin0: String;
pin1: String;
flag: Integer;
addr: string;
begin
addr:='192.168.1.7:11000';
flag:=0;
while flag = 0 do
begin
tel := gui.InputBox('Номер Телефона (7-ХХХ-ХХХ-ХХ-ХХ)', 'Введите номер Телефона ', '', true);
if tel = '' then
flag := 2;
if Length(tel) <> 11 then
gui.ShowMessage('Не верный номер телефона. Ожидается 11 цифр.')
else
flag:=1;
end;
if Flag = 2 then
Exit;
if HttpGet('http://'+addr+'/authorize?phone='+tel, pin0) = 0 then
begin
if pos('',pin0)> 0 then
GUI.ShowMessage(pin0)
else if pos('OK',pin0)> 0 then
gui.ShowMessage('Гостю отправлен код авторизации.')
else
gui.ShowMessage('Ответ сервера: '+pin0);
end
else
GUI.ShowMessage('Сервер авторизации не отвечает. Повторите попытку позднее.');
if Parameter = 1 then
begin
pin1 := gui.InputBox('Введите ПИН-КОД', 'Введите ПИН-Код, отправленный на номер телефона', '', true);
RK7.PerformMCRAlgorith(pin1, 0);
end;
end;
**ВНИМАНИЕ!** Для работы скрипта в быстром чеке (с отображением окна) необходимо у функциональной клавиши задать свойства "параметр" и "параметр.пуст" равным единице (1)
Не в быстром чеке - тоже проверьте эти параметры, тоже должны быть равны единице.
{{:external:smspds:подключить_смс_пдс_-_оазис_28.01.2020_07_59_06_46719.png}}
=== MCR Алгоритм ===
- Перейти в справочник "Сервис > Обработка сигналов устройств > MCR Алгоритмы"
- Создать копию MCR Алгоритма, использующегося для классической авторизации карт ПДС
- Переименовать его содержательно (например "ПИН код SMSPDS")
- Выставить тип алгоритма "Скрипт вер. 7.0"
- Поставить галки типов устройств "Клавиатура" и "Скрипт". Все остальные должны быть сняты.
Содержимое скрипта:
var
res:string;
url:string;
begin
if Length(Parameter) <> 4 then
begin
Result:=false;
end
else
begin
url:='http://192.168.1.7:11000/pincode?pin='+Parameter;
res:='';
httpget(url,res);
if pos('',res)> 0 then
begin
GUI.ShowMessage('Ошибка авторизации пин-кода: '+res);
Result:=false;
end
else if Length(res)> 0 then
begin
Parameter:=res;
Result:=true;
end;
end;
end;
В строке, где задается значение переменной url исправить "192.168.1.7:11000" на IP адрес и listen порт PDSSMS.exe
=== Настройка СМС сообщений ===
В стандартной поставке программного обеспечения используется интеграция с СМС провайдером [[https://smsc.ru/?pp336049|smsc]]. \\
Для работы системы необходимо зарегистрировать у провайдера личный кабинет. После подтверждения номера телефона, Вам будет начислено 15 рублей на счет, которых должно быть достаточно для тестирования ПО.
После того, как Вы зарегистрировали личный кабинет у провайдера, необходимо указать данные для авторизации в конфигурационном файле sms_smsc.ini \\ Для этого используется утилита inicrypt, включенная в дистрибутив.
1. Запустите исполняемый файл IniCrypt_Project.exe, нажмите кнопку открыть и укажите файл sms_smsc.ini
{{:external:smspds:inicrypt1.jpg|inicrypt1.jpg}}
2. В поле "Секция" выберите пункт "smsc.ru"
{{:external:smspds:inicrypt1_1.jpg|inicrypt1_1.jpg}}
3. Вставьте логин и пароль Вашего личного кабинета в соответствующие поля, затем нажмите кнопку "Сохранить"
{{:external:smspds:inicrypt1_2.jpg|inicrypt1_2.jpg}}
4. Закройте программу IniCrypt_Project.exe
**С версии PDSSMS.exe v1.0.2.99 появилась возможность авторизации карты по номеру телефона БЕЗ использования СМС кода**
Для использования такого функционала необходимо:
- Перейти в справочник "Сервис > Обработка сигналов устройств > MCR Алгоритмы"
- Создать копию MCR Алгоритма, использующегося для классической авторизации карт ПДС
- Переименовать его содержательно (например "ПИН код SMSPDS")
- Выставить тип алгоритма "Скрипт вер. 7.0"
- Поставить галки типов устройств "Клавиатура" и "Скрипт". Все остальные должны быть сняты
- Вставить в скрипт алгоритма следующий код:
var
res:string;
url:string;
begin
if Length(Parameter) <> 11 then //количество символов номера телефона
begin
Result:=false;
end
else
begin
url:='http://192.168.1.7:11000/fastauthorize?phone='+Parameter;
res:='';
httpget(url,res);
if pos('',res)> 0 then
begin
GUI.ShowMessage('Ошибка авторизации карты: '+res);
Result:=false;
end
else if Length(res)> 0 then
begin
Parameter:=res;
Result:=true;
end;
end;
end;
Аналогично с предыдущим MCR алгоритмом, в строке, где задается значение переменной url исправить "192.168.1.7:11000" на IP адрес и listen порт PDSSMS.exe
**ЗЫ При использовании такого механизма, скрипт PDS_Authorize может быть отключен, для авторизации карты использовать стандартную функциональную клавишу "Код с клавиатуры".**
=== Использование скриптов ===
Для активации скриптов необходимо назначить их на функциональные клавиши и добавить на экранные формы кассы.
В справочнике "Сервис > Операции" выбрать две пользовательских операции для PDS_Authorize и PDS_Activate, назначить им соответствующие скрипты
В справочнике "Настройки > Графический интерфейс > Функциональные клавиши" добавить функциональную клавишу "Авторизация карты" в группу "Операции с заказом > Селектор операций", а так же клавишу "Активация карты" в группу "Главное меню"
Перейти в справочник "Настройки > Графический интерфейс > Селекторы"
Сделать копию селектора главное меню, добавить в него клавишу "Активация карты" с параметром по умолчанию
Сделать копию селектора операций для **быстрого чека**, добавить в него клавишу "Авторизация карты" с параметром 1 **!!!** {{:external:smspds:подключить_смс_пдс_-_оазис_28.01.2020_07_59_06_46719.png}}
Сделать копию селектора операций для чека ресторана, добавить в него клавишу "Авторизация карты" с параметром по умолчанию
Добавить графическое отображение созданных клавиш в макеты скопированных селекторов, затем назначить использование этих селекторов по умолчанию.
----
===== Запуск =====
PDSSMS.exe является desktop приложением и не требует специальных ключей для запуска. В случае возникновения ошибок во время запуска необходимо в файле config.ini установить значение LogLevel=5 и добиться повторения ошибки. В этом случае в папке Log директории приложения можно будет найти файл с подробным описанием возникшей ошибки.