Модуль перекодировки различных форматов карт FIX_LEN

Данный модуль предназначен для преобразования форматов карт, отличных от стандартных. Модуль реализован в виде дополнительной библиотеки для кассового клиента - FIX_LEN.DLL. Библиотека должна размещаться в поддиректории EXTENS рабочего каталога кассовой станции (как правило, RKCLIENT). С версии FIX_LEN 2.0 поддерживаются форматы произвольной длины.
Для создания нескольких правил перекодировки, библиотека может быть переименована и размещена в директории EXTENS под разными именами. Все необходимые конфигурационные параметры библиотеки должны находиться в файле RKEEPER6.INI.

Формат параметров следующий:

_ = 
_ = 
.......................................................................
_ = 

Для версии FIX_LEN 2.0 и выше параметры можно объединять в секции [ ]:

[]
=
=
......................................
=

Описание параметров, которые могут применяться к библиотеке перекодировки:

  • MaxLen1 - максимальная длина формата карты. По умолчанию имеет значение ноль (0) - при этом MaxLen принимает значение, равное длине маски length(Mask)
  • MinLen1 - минимальная длина формата карты. По умолчанию имеет значение ноль (0) - при этом MaxLen принимает значение, равное длине маски length(Mask)
  • Mask2 - маска для выделения результирующего номера из общего формата карты. Может состоять из числовых символов (0-9), группового символа "*" (звездочка)  и символа  "N". Числовые символы представляют сами себя, т.е. цифры от 0 до 9, и используются для точного соответствия считанного с карты номера указанной маске. При использовании группового символа "*" на позиции маски может находиться любой символ (не обязательно числовой). Символ "N" играет ключевую роль - все символы, выделенные из формата карты, соответствующие позиции символа "N" в маске, формируют результирующий номер карты. Если длина формата карты превышает длину параметра Mask (но меньше значения MaxLen), то значение параметра Mask дополняется СПРАВА символами "*". Если длина формата карты меньше длины параметра Mask (но больше MinLen), то значение параметра Mask обрезается СПРАВА до длины формата карты. Более подробно см. примеры применения FIX_LEN
  • RightMask2 - аналогичен параметру Mask, за исключением того, что маска дополняется или обрезается (в зависимотси от параметров MaxLen и MinLen) СЛЕВА.
  • AddCode - можно указать значение, которое будет прибавляться к результирующему номеру после выделения маски. Значение по умолчанию - 0. Максимальное значение 2147483647 (LongInt)
  • Card - указывает, в какой формат, поддерживаемый системой R-Keeper v6, преобразовать выделенный по маске результирущий номер. По умолчанию имеет значение "0". 
    Может принимать следующие значения:
  • 0 - преобразовать в формат персональных дисконтно-платежная карт  (778==)
  • 1 - преобразовать в формат неперсональной дисконтой карты (777===*)
  • 2 - преобразовать в формат гостиничной карта (770==)
  • 3 - преобразовать в формат карты на входе (771==)
  • 4 - преобразовать в формат карты неплательщика (99) - начиная с версии 2.03
  • 5 - преобразовывать в формат новых гостиничных карт (760==) -  начиная с версии 2.04
  • ForDigits - определяет, сколько цифр кода корпорации передавать кассовому серверу после преобразования. При значении ON (Fix_Len_ForDigits = ON) кассовый сервер будет всегда получать 8-ми значный код ресторана. Это требуется при перекодировке в формат гостиничных карт (см. параметр Card = 2), т.к. на данный момент кассовый сервер "принимает" гостиничные карты только с 8-ми значным кодом ресторана
  • СreditCard - расширенная поддержка кредитных карт (только с версии FIX_LEN 2.0 и выше). По умолчанию принимает значение OFF. При значении ON библиотека дополнительно выполняет след. функции:
    • выделяет номер кредитной карты из общего формата карты
    • производит проверку контрольной суммы по правилам кредитных карт
    • выделенный номер кредитной карты используется для дальнейшей обработки с помощью вышеорисанных параметров
  • Log - включение (ON) записи результатов работы перекодировщика в лог-файл - начиная с версии 2.05. Пример лог-файл приведен ниже:
  • Enter card:1000030000313928
    Cardnum after mask: 300
    Converted to 760=99999999=300
    * - срок действия неперсональной дисконтной карты не может быть установлен с помощью FIX_LEN, т.к. он устанавливается автоматически равным 2080 году

    Более подробно о стандартных форматах карт см. здесь.

    Протестировать работоспособность библиотеки и указанных параметров можно с помощью утилиты TSTFXLEN.EXE. Для это необходимо записать в корень рабочего каталога RKCLIENT утилиту тестирования (TSTFXLEN.EXE) и библиотеку перекодировки (FIX_LEN.DLL). Затем запустить утилиту тестирования, указав в качестве параметра формат карты, который хотим перекодировать:

    TSTFXLEN.EXE

    Примечание: утилита проверки TSTFXLEN.EXE использует параметры, указанные в файле RKEEPER6.INI

    В результате выполения команды, если предполагаемый формат карты соответствует указанной в RKEEPER6.INI маске и остальным параметрам, должен быть ответ в примерное таком виде (при перекодировке в формат карт ПДС):

    Примечание: утилита проверки TSTFXLEN.EXE  всегда возвращает вместо реального кода ресторана значение 00000000 (восемь нулей).


     

    1 - по умолчанию, значение параметра MaxLen равно значению параметра MinLen и принимает значение, равное длине формата карты.
    2 - результирующий номер образуется конкатенацией выделенных из общего формата (по символу "N") номеров левой и правой маски. Конкатенация - это объединение строк. Например, результат конкатенации строк "ABC123" и "456DEF" является строка "ABC123456DEF". Более подробно см. примеры импользования FIX_LEN.

     

    Добавить комментарий


    Защитный код
    Обновить

    joomla