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

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


менеджер_оплат:настройка:модули: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, которая обеспечивает вызовы функций модуля. Эта утилита расположена там же, где и модуль. Схема запуска утилиты:

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

Здесь:

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

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

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


Информация о модуле.
	Версия протокола: 7
	Имя: "Золотая середина"
	Дополнтельная информация: 
		ReadCardOnCash: 1
		MultiAuth: 0
		ReadPhoneNumberOnCash: 0
		ReadServiceProviderOnCash: 0
		MultiCloseDay: 0
Запрос информации о карте...Успешно.
Информация о карте:
	Номер: 0040019414
	Баланс: 70
	Скидка: 0
Продажа с начислением бонусов...
	Карта: 0040019414
	Сумма чека: 10
...Успешно.
	Начислено баллов: 10
	Сообщение: Продажа выполнена успешно, начислено 10.00 бонусов.
	Строка продажи: 
	Строка для печати: 
****************************************
*    Добро пожаловать в программу      *
*           <Золотая середина>         *
****************************************
* № чека                               *
* Дата чека:                           *
* К оплате:           10.00 руб.       *
* К оплате с учетом бонусов:           *
*                     10.00 руб.       *
****************************************
* № Вашей карты:       0040019414      *
* Начислено бонусов за покупку         *
*                              +10.00  *
* Списано бонусов в счет покупки       *
*                                0.00  *
* Баланс бонусов по карте (до покупки) *
*                               70.00  *
****************************************
* При предъявлении карты,              *
* Вам начисляется 5% бонусов           *
* от суммы Вашей покупки.              *
* 1 бонус=1 рубль                      *
* Оплачивайте бонусами                 *
* до 50% от суммы покупки.             *
****************************************
* БЛАГОДАРИМ ЗА ПОКУПКУ!               *
* Узнать подробнее об условиях         *
* программы и текущих акциях           *
* www.seredina.ru                      *
****************************************
Возврат начисленых бонусов...
	Карта: 0040019414
	Сумма чека: -10
...Успешно.
	Начислено баллов: -10
	Сообщение: Возврат выполнен успешно
	Строка продажи: 
	Строка для печати: 
****************************************
*    Добро пожаловать в программу      *
*           <Золотая середина>         *
****************************************
* № чека                               *
* Дата чека:                           *
* К оплате:          -10.00 руб.       *
* К оплате с учетом бонусов:           *
*                    -10.00 руб.       *
****************************************
* № Вашей карты:       0040019414      *
* Начислено бонусов за покупку         *
*                              -10.00  *
* Списано бонусов в счет покупки       *
*                                0.00  *
* Баланс бонусов по карте (до покупки) *
*                               70.00  *
****************************************
* При предъявлении карты,              *
* Вам начисляется 5% бонусов           *
* от суммы Вашей покупки.              *
* 1 бонус=1 рубль                      *
* Оплачивайте бонусами                 *
* до 50% от суммы покупки.             *
****************************************
* БЛАГОДАРИМ ЗА ПОКУПКУ!               *
* Узнать подробнее об условиях         *
* программы и текущих акциях           *
* www.seredina.ru                      *
****************************************
Продажа со списанием бонусов...
	Карта: 0040019414
	Сумма чека: 10
	Баллов для списания: 5
...Успешно.
	Списано баллов: 5
	Сообщение: Продажа выполнена успешно. Списано баллов: 5,00. 
	Строка продажи: 
	Строка для печати: 
****************************************
*    Добро пожаловать в программу      *
*           <Золотая середина>         *
****************************************
* № чека                               *
* Дата чека:                           *
* К оплате:           10.00 руб.       *
* К оплате с учетом бонусов:           *
*                      5.00 руб.       *
****************************************
* № Вашей карты:       0040019414      *
* Начислено бонусов за покупку         *
*                               +0.00  *
* Списано бонусов в счет покупки       *
*                                5.00  *
* Баланс бонусов по карте (до покупки) *
*                               70.00  *
****************************************
* При предъявлении карты,              *
* Вам начисляется 5% бонусов           *
* от суммы Вашей покупки.              *
* 1 бонус=1 рубль                      *
* Оплачивайте бонусами                 *
* до 50% от суммы покупки.             *
****************************************
* БЛАГОДАРИМ ЗА ПОКУПКУ!               *
* Узнать подробнее об условиях         *
* программы и текущих акциях           *
* www.seredina.ru                      *
****************************************

Проблема с DEP

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

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