Различия
Показаны различия между двумя версиями страницы.
external:smspds_v2:02_configrk:01_mcr [2022/11/23 16:38] – создано Евгений Агеев | external:smspds_v2:02_configrk:01_mcr [2022/11/25 12:10] (текущий) – Евгений Агеев | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== MCR-алгоритмы ====== | ====== MCR-алгоритмы ====== | ||
+ | Работа с модулем **SMSPDS** на стороне кассы осуществляется через MCR алгоритмы и ввода с клавиатуры. | ||
+ | Пользователь на кассе нажимает функциональную клавишу " | ||
+ | Доступно два сценария работы модуля: | ||
+ | * Авторизация пользователя по коду; | ||
+ | * Авторизация только по номеру телефона (без кода). | ||
+ | |||
+ | MCR алгоритмы создаются в окне **Сервис** -> **Обработка сигналов устройств** -> **MCR алгоритмы**. У всех алгоритмов одинаковые настройки: | ||
+ | * **Типы устройств**: | ||
+ | * **Тип алгоритма**: | ||
+ | * **Область**: | ||
+ | |||
+ | **ВНИМАНИЕ**: | ||
+ | ===== Авторизация пользователя по коду ===== | ||
+ | Для данного сценария необходимо создать 2 MCR алгоритма в менеджерской r_keeper. | ||
+ | Первый алгоритм используется для запроса на генерацию кода и его отправки. Название: | ||
+ | {{ : | ||
+ | В него вставить следующий скрипт: | ||
+ | < | ||
+ | var | ||
+ | response: String; | ||
+ | code_resp: Integer; | ||
+ | begin | ||
+ | if (Length(Parameter) = 11) then | ||
+ | begin | ||
+ | code_resp := HTTPGet(' | ||
+ | if code_resp = -1 then | ||
+ | begin | ||
+ | GUI.ShowMessage(' | ||
+ | end | ||
+ | else if code_resp = 500 then | ||
+ | begin | ||
+ | GUI.ShowMessage(' | ||
+ | end | ||
+ | else if pos(' | ||
+ | begin | ||
+ | GUI.ShowMessage(copy(response, | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | GUI.ShowMessage(response); | ||
+ | end; | ||
+ | end; | ||
+ | Result := False; | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | |||
+ | Второй алгоритм используется непосредственно для ввода кода пользователю, | ||
+ | {{ : | ||
+ | |||
+ | В сам алгоритм вставить следующий скрипт: | ||
+ | < | ||
+ | var | ||
+ | response: String; | ||
+ | i, j, code_resp: Integer; | ||
+ | is_numb, is_numb_one: | ||
+ | begin | ||
+ | is_numb := True; | ||
+ | for i := 1 to Length(Parameter) do | ||
+ | begin | ||
+ | is_numb_one := False; | ||
+ | for j := 0 to 9 do | ||
+ | begin | ||
+ | if Parameter[i] = IntToStr(j) then | ||
+ | begin | ||
+ | is_numb_one := True; | ||
+ | Break; | ||
+ | end; | ||
+ | end; | ||
+ | if is_numb_one = False then | ||
+ | begin | ||
+ | is_numb := False; | ||
+ | Break; | ||
+ | end; | ||
+ | end; | ||
+ | if (Length(Parameter) = 4) and (is_numb = True) then | ||
+ | begin | ||
+ | code_resp := HTTPGet(' | ||
+ | if code_resp = -1 then | ||
+ | begin | ||
+ | GUI.ShowMessage(' | ||
+ | end | ||
+ | else if code_resp = 500 then | ||
+ | begin | ||
+ | GUI.ShowMessage(' | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | if pos(' | ||
+ | begin | ||
+ | GUI.ShowMessage(copy(response, | ||
+ | Result := False; | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | for i := 1 to Length(response) do | ||
+ | begin | ||
+ | is_numb_one := False; | ||
+ | for j := 0 to 9 do | ||
+ | begin | ||
+ | if response[i] = IntToStr(j) then | ||
+ | begin | ||
+ | is_numb_one := True; | ||
+ | Break; | ||
+ | end; | ||
+ | end; | ||
+ | if is_numb_one = False then | ||
+ | begin | ||
+ | is_numb := False; | ||
+ | Break; | ||
+ | end; | ||
+ | end; | ||
+ | if is_numb = True then | ||
+ | begin | ||
+ | Parameter := response; | ||
+ | Result := True; | ||
+ | end | ||
+ | else begin | ||
+ | GUI.ShowMessage(response) | ||
+ | Result := False; | ||
+ | end; | ||
+ | end; | ||
+ | end; | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | Result := False; | ||
+ | end; | ||
+ | end; | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Авторизация пользователя по номеру телефона (без кода) ===== | ||
+ | Для данного сценария используется один MCR алгоритм. Его название " | ||
+ | {{ : | ||
+ | В сам алгоритм вставить следующий скрипт: | ||
+ | < | ||
+ | var | ||
+ | response: String; | ||
+ | code_resp: Integer; | ||
+ | begin | ||
+ | if (Length(Parameter) = 11) then | ||
+ | begin | ||
+ | code_resp := HTTPGet(' | ||
+ | if code_resp = 500 then | ||
+ | begin | ||
+ | GUI.ShowMessage(' | ||
+ | end | ||
+ | else if code_resp = -1 then | ||
+ | begin | ||
+ | GUI.ShowMessage(' | ||
+ | end | ||
+ | else if pos(' | ||
+ | begin | ||
+ | GUI.ShowMessage(copy(response, | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | Parameter := response; | ||
+ | Result := True; | ||
+ | end; | ||
+ | end; | ||
+ | end; | ||
+ | </ |