Это старая версия документа!
Модуль «Золотая середина» менеджера оплат Штрих-М служит для интеграции менеджера оплат Штрих-М с бонусными и дисконтными картами компании «Золотая середина».
Сам модуль представляет собой динамически подключаемую библиотеку 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).
Входные поля
(пусто) - лог OLE-компонента _trm - лог терминала
Кроме того, можно воспользоваться утилитой командной строки для тестирования testcmdl.exe, которая обеспечивает вызовы функций модуля. Эта утилита расположена там же, где и модуль. Схема запуска утилиты:
testcmdl.exe [номер карты [/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.