===== Установка и настройка ===== ==== 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 директории приложения можно будет найти файл с подробным описанием возникшей ошибки.