Различия
Показаны различия между двумя версиями страницы.
| 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; | ||
| + | </ | ||