Инструменты пользователя

Инструменты сайта


менеджер_оплат:настройка:модули:seredinas1c

Это старая версия документа!


Золотая середина

Общие положения

Модуль «Золотая середина» менеджера оплат Штрих-М служит для интеграции менеджера оплат Штрих-М с бонусными и дисконтными картами компании «Золотая середина».

Сам модуль представляет собой динамически подключаемую библиотеку seredinas1c.dll, разработанную в соответствии с требованиями компании Штрих-М.

Требования к системе

Для работы модуля требуется, чтобы был установлен «Терминал для работы с картами «Золотая середина».

Порядок установки и настройки

При установке терминала требуется включить флажок «Устанавливать OLE-компоненты для интеграции». Сам файл seredinas1c.dll помещается в соответствующую папку менеджера оплат и на него указывается ссылка в файле ShtrihPayMan.ini. Для работы OLE-компонентов требуется наличие файла настроек wscardterm.ini либо в той же папке, что и модуль seredinas1c.dll, либо в папке «Общие документы\Seredina». В папку «Общие документы\Seredina» файл настроек попадает при установке терминала для работы с картами «Золотая середина».

Порядок использования.

Ниже перечислены основные операции, реализуемые модулем, а также значения полей, которые модуль ожидает при вызове.

Запрос баланса.

Осуществляется вызовом функции GetDiscountCardInfo(DiscountCardInfo *info).

*Входные поля* * CardNumber - номер карты.

*Выходные поля* * Balance - баланс, в сотых долях баллов. * ErrorCode - код ошибки, равно 0, если все хорошо. * ErrorMessage - текст ошибки, не заполняется, если все хорошо. * StringForPrint - слип-чек для печати.

Начисление баллов.

Осуществляется вызовом функции CorrectDiscountCard(PayInfo *info).

*Входные поля* * CardNumber - номер карты. * CheckNumber - номер чека, если 0, генерируется автоматически из параметров магазина и даты/времени. * Amount - сумма чека в рублях.

*Выходные поля* * BonusAmount - начисленные баллы, в сотых долях. * Error - код ошибки, равно 0, если все хорошо. * ErrorMsg - текст ошибки, не заполняется, если все хорошо. * StringForPrint - слип-чек для печати.

Списание баллов.

Осуществляется вызовом функции Pay(PayInfo *info).

Входные поля

  • CardNumber - номер карты.
  • CheckNumber - номер чека, если 0, генерируется автоматически из параметров магазина и даты/времени.
  • Amount - количество баллов для списания.
  • Pays - массив видов платежей, имеет C-тип PayItem * * .
  • Каждый элемент содержит поля:
    • articul - код вида оплаты.
    • name - наименование вида оплаты.
    • amount - сумма, оплачиваемая данным видом оплаты, в сотых долях валюты.
    • articul - код ККМ, модулем не учитывается.
  • PaysCount - размер массива Pays.

Сумма чека считается как сумма полей amount по всем видам оплаты. Сумма баллов для списания берется из поля info→Amount.

Выходные поля

  • BonusAmount - количество списанных баллов, в сотых долях.
  • Error - код ошибки, равно 0, если все хорошо.
  • ErrorMsg - текст ошибки, не заполняется, если все хорошо.
  • StringForPrint - слип-чек для печати.

Настройка слип - чека

Шаблон слип-чека, выдаваемого модулем можно настраивать. Для этого существует закладка «Слип-чек» в окне настроек модуля. Шаблон представляет собой произвольный текст со специальными полями, которые будут вычислены и подставлены в чек. Каждое подставляемое поле ограничено символом '&' в начале и в конце. Затем идет двухбуквенное регистрочувствительное наименование поля, а затем спецификатор формата. Спецификатор формата должен быть такой же, как для C-функции printf. Например, *&SU%8.2f &* означает поле SU (сумма чека), отформатированное как число с десятичной точкой, с точностью 2 знака после запятой и шириной 8 символов. Выравнивание полей осуществляется по правой границе. Если ширина получившегося отформатированного значения получилась меньше, чем ширина строки между начальным и конечным символами '&', производится дополнение пробелами слева (выравнивание по правой границе).

Ниже представлены поля, которые поддерживаются:

  • SU - сумма чека
  • SB - сумма к оплате за вычетом суммы, оплачиваемой баллами
  • CN - номер карты
  • BC - количество начисленных при операции бонусов
  • BD - количество списанных при операции бонусов
  • BB - баланс карты да операции

Настройки модуля, включая шаблон слип-чека сохраняются в файле «Общие документы\Seredina\seredinas1c.xml».

Разрешение проблем при работе модуля

Возникающие проблемы можно условно разделить на несколько видов.

  • Ошибки настройки. Этот класс проблем возникает из-за неправильной установки или настройки модуля.
  • Ошибки связи. Возникают из-за проблем с сетью.
  • Ошибки бизнес-логики. Возникают в процессе обработки запросов. Например, сумма баллов для списания превысила лимит списания.

Для помощи в решении проблем можно использовать лог-файлы. Они расположены в папке «Общие документы\Seredina\Logs». Каждый файл имеет имя в формате YYYYMMDDКАТЕГОРИЯ.log. Здесь: * YYYY - год записи в журнал, * MM - месяц записи в журнал, * DD - день записи в журнал, * КАТЕГОРИЯ - строка, идентифицирующая категорию информации.

                 Принимает значения:

_s1c - лог модуля seredinas1c.dll (пусто) - лог OLE-компонента _trm - лог терминала Кроме того, можно воспользоваться утилитой командной строки для тестирования testcmdl.exe, которая обеспечивает вызовы функций модуля. Эта утилита расположена там же, где и модуль. Схема запуска утилиты: testcmdl.exe [номер карты [/s сумма] [/b баллы_для_списания]]**.

Здесь:

  • [номер карты] - номер бонусной карты для тестирования, по умолчанию 0040019414
  • [/s сумма] - сумма чека, в целых рублях
  • [/b баллы_для_списания] - сумма баллов для списания, в целых баллах.

Вывод утилиты обычно похож на следующий: <pre>

*testcmdl.exe [номер карты [/s сумма] [/b баллы_для_списания]]*

Информация о модуле.

Версия протокола: 7
Имя: "Золотая середина"
Дополнтельная информация: 
	ReadCardOnCash: 1
	MultiAuth: 0
	ReadPhoneNumberOnCash: 0
	ReadServiceProviderOnCash: 0
	MultiCloseDay: 0

Запрос информации о карте…Успешно. Информация о карте:

Номер: 0040019414
Баланс: 1020.25
Скидка: 0

Продажа с начислением бонусов…

Карта: 0040019414
Сумма чека: 100

…Успешно.

Начислено баллов: 10
Сообщение: Продажа выполнена успешно, начислено 10.00 бонусов.
Строка продажи: 
Строка для печати: Продажа выполнена успешно, начислено 10.00 бонусов.

Возврат начисленых бонусов…

Карта: 0040019414
Сумма чека: -100

…Успешно.

Начислено баллов: -10
Сообщение: Возврат выполнен успешно
Строка продажи: 
Строка для печати: Возврат выполнен успешно

Продажа со списанием бонусов…

Карта: 0040019414
Сумма чека: 100
Баллов для списания: 1

…Успешно.

Списано баллов: 1
Сообщение: Продажа выполнена успешно. Списано баллов: 1,00. 
Строка продажи: 
Строка для печати: Продажа выполнена успешно. Списано баллов: 1,00. 

</pre>

Также, есть проблема, связанная с включённой защитой от выполнения данных (DEP) для 1С. Она проявляется как ошибка доступа к памяти вида: «access vioaltion at [ADDR]. Write memory at [ADDR]», где [ADDR] - некий адрес в памяти. Эту защиту нужно отключать для процесса 1с. Как это сделать, подробнее можно узнать здесь: http://support.microsoft.com/kb/875352.

менеджер_оплат/настройка/модули/seredinas1c.1378981230.txt.gz · Последнее изменение: 2013/09/12 10:20 — fukalov