Сверка итогов по терминалу

Регистрация и подключение библиотеки

Итак, для работы нам нужно зарегистрировать в системе две DLL-ки: SBRF.dll и SBRFCOM.dll. Библиотека SBRFCOM.dll бывает в двух вариантах: старый (3 параметра) и новый (7 параметров), нам естественно нужен новый.

Получить обе эти DLL-ки можно у того специально обученного человека из Сбербанка, который придет настраивать терминал. Регистрацию библиотек в системе обычно делает все тот же сотрудник Сбербанка, но если этого по какой-то причине не произошло, то библиотеки нужно зарегистрировать самостоятельно, из командной строки при помощи утилиты regsvr32 (командную строку запустите от имени администратора):

Регистрация SBRFCOM

Подключение зарегистрированной библиотеки необходимо выполнить перед совершением каких-либо операций с эквайринговым терминалом, делается это примерно так:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 &НаКлиенте Процедура Подключение(Команда) ОбъектДрайвераАвторизатора = ПодключитьАвторизатор(); КонецПроцедуры &НаКлиенте Функция ПодключитьАвторизатор() Попытка ПодключитьВнешнююКомпоненту(«AddIn.SBRFCOMObject»); ОбъектДрайвераАвторизатора = Новый («AddIn.SBRFCOMExtension»); Исключение ОбъектДрайвераАвторизатора = Неопределено; Сообщить(«Ошибка при подключении авторизатора: «+ОписаниеОшибки()); КонецПопытки; Возврат ОбъектДрайвераАвторизатора; КонецФункции

В случае успеха, переменную «ОбъектДрайвераАвторизатора» нужно каким-либо образом сохранить для дальнейшего использования, именно через эту переменную будут вызываться все необходимые методы.

Вспомогательные функции SBRFCOM

Общая схема работы с методами библиотеки SBRFCOM (кроме сверки итогов) такова:

  • Вызвали метод;
  • Если все хорошо, то получили и распечатали слип;
  • Если возникли проблемы — отменили операцию.

Вначале скажу несколько слов о слипе. Итак слип — это документ, который печатается в двух экземплярах (один клиенту, один организации) при осуществлении каких-либо операций с банковской картой. Печать слипа обязательна (хотя зачастую обходятся и без него), так как в случае каких-либо разногласий с банком эквайрером разбирательства начинаются с проверки наличия слипа по конкретной операции. Технически слип формируется самим терминалом (по крайней мере в нашем случае) или вручную. Если надумали формировать слип вручную, то в конфигурации «Библиотека подключаемого оборудования» имеется общий макет содержащий пример слипа.

Рассмотрим две служебные функции. Первая из них — «АварийнаяОтменаОперации», служит для отмены операции в том случае, когда при получении слипа возникли ошибки. О важности получения слипа говорилось выше.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 &НаКлиенте Функция АварийнаяОтменаОперации(СуммаВРублях, СсылочныйНомер) Результат = Истина; Ошибка = Неопределено; ОбъектДрайвераАвторизатора.ТипКарты = 0; СуммаВременная = СуммаВРублях * 100; Ответ = ОбъектДрайвераАвторизатора.ОтменитьПлатежПоПлатежнойКарте(СуммаВременная, СсылочныйНомер); Если НЕ Ответ Тогда ОбъектДрайвераАвторизатора.ПолучитьОшибку(Ошибка); Результат = Ложь; КонецЕсли; Возврат Результат; КонецФункции

Вторая функция получает строки слипа и формирует из них готовую к печати текст.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 &НаКлиенте Функция ПолучитьСтрокиСлипЧека(СлипЧек) Результат = Истина; СлипЧек = «»; Для Индекс = 1 По ОбъектДрайвераАвторизатора.КоличествоСтрокСлипЧека Цикл СтрокаЧека = «»; УспешноПолучено = ОбъектДрайвераАвторизатора.ПолучитьСтрокуСлипЧека(Индекс, СтрокаЧека); Если УспешноПолучено Тогда Если КодСимвола(СтрокаЧека) = 0 Тогда СлипЧек = СлипЧек + «» + Символы.ПС + СтрокаЧека; Иначе СлипЧек = СлипЧек + СтрокаЧека + ?(Индекс = ОбъектДрайвераАвторизатора.КоличествоСтрокСлипЧека, «», Символ(13) + Символ(10)); КонецЕсли; Иначе Сообщить(«Ошибка при получении строк слип-чека»); Результат = Ложь; КонецЕсли; КонецЦикла; Если Результат Тогда КопииСлипЧека = «»; Для Индекс = 1 По ОбъектДрайвераАвторизатора.КоличествоКопийСлипЧека Цикл КопииСлипЧека = КопииСлипЧека + СлипЧек + ?(Индекс = ОбъектДрайвераАвторизатора.КоличествоКопийСлипЧека, «», Символы.ПС + «» + Символы.ПС); КонецЦикла; СлипЧек = КопииСлипЧека; КонецЕсли; Возврат Результат; КонецФункции

Основные функции SBRFCOM

Теперь приведем самую главную функцию — собственно оплата картой.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 &НаКлиенте Функция ОплатитьКартой(СуммаВРублях) Результат = Ложь; СсылочныйНомер = Неопределено; КодАвторизации = Неопределено; КодХеш = Неопределено; КартаСбербанка = Неопределено; НазваниеКарты = Неопределено; Ошибка = Неопределено; ОбъектДрайвераАвторизатора.ТипКарты = 0; СуммаВременная = СуммаВРублях * 100; НомерКарты = «****************»; Попытка Ответ = ОбъектДрайвераАвторизатора.ОплатитьПлатежнойКартой(СуммаВременная, СсылочныйНомер, КодАвторизации, КодХеш, КартаСбербанка, НазваниеКарты, НомерКарты); Исключение Сообщить(«Ошибка при работе с библиотекой SBRFCOM:»+ОписаниеОшибки()); Возврат Результат; КонецПопытки; Если НЕ Ответ Тогда ОбъектДрайвераАвторизатора.ПолучитьОшибку(Ошибка); Иначе СлипЧек = Неопределено; Результат = ПолучитьСтрокиСлипЧека(СлипЧек); Если Результат Тогда //ПечатьТекста(СлипЧек); Иначе Сообщить(«Произошла ошибка. Аварийная отмена операции…»); АварийнаяОтменаОперации(СуммаВРублях, СсылочныйНомер); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции

В случае успешного выполнения переменные, объявленные в начале функции, обретают осмысленные значения и было бы неплохо сохранить их каким-либо образом с привязкой к документу оплаты, эти данные потребуются для отмены или возврата платежа. Закомментированная строка вызывает функцию печати текста, реализация этой функции может быть различной.

Далее следует функция отмены платежа, она применяется для отмены платежа по платежной карте совершенного в этот же день (до сверки итогов).

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 &НаКлиенте Функция ОтменитьОперацию(СуммаВРублях, СсылочныйНомер) Результат = Истина; Ошибка = Неопределено; ОбъектДрайвераАвторизатора.ТипКарты = 0; СуммаВременная = СуммаВРублях * 100; Ответ = ОбъектДрайвераАвторизатора.ОтменитьПлатежПоПлатежнойКарте(СуммаВременная, СсылочныйНомер); Если НЕ Ответ Тогда ОбъектДрайвераАвторизатора.ПолучитьОшибку(Ошибка); Результат = Ложь; Иначе СлипЧек = Неопределено; Результат = ПолучитьСтрокиСлипЧека(СлипЧек); Если Результат Тогда //ПечатьТекста(СлипЧек); Иначе АварийнаяОтменаОперации(СуммаВРублях, СсылочныйНомер); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции

Если же требуется отменить оплату спустя один или несколько дней, то нужно использовать возврат платежа.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 &НаКлиенте Функция ВозвратПлатежа(СуммаВРублях, НомерКарты) Результат = Ложь; Ошибка = Неопределено; СсылочныйНомер = Неопределено; КодАвторизации = Неопределено; КодХеш = Неопределено; КартаСбербанка = Неопределено; НазваниеКарты = Неопределено; ОбъектДрайвераАвторизатора.ТипКарты = 0; СуммаВременная = СуммаВРублях * 100; Попытка Ответ = ОбъектДрайвераАвторизатора.ВернутьПлатежПоПлатежнойКарте(СуммаВременная, СсылочныйНомер, КодАвторизации, КодХеш, КартаСбербанка, НазваниеКарты, НомерКарты); Исключение Сообщить(«Ошибка при работе с библиотекой SBRFCOM:»+ОписаниеОшибки()); Возврат Результат; КонецПопытки; Если НЕ Ответ Тогда ОбъектДрайвераАвторизатора.ПолучитьОшибку(Ошибка); Иначе СлипЧек = Неопределено; Результат = ПолучитьСтрокиСлипЧека(СлипЧек); Если Результат Тогда //ПечатьТекста(СлипЧек); Иначе Сообщить(«Произошла ошибка. Аварийная отмена операции…»); АварийнаяОтменаОперации(СуммаВРублях, СсылочныйНомер); КонецЕсли; КонецЕсли; Возврат Результат; КонецФункции

2.2 Как считывать карту на терминале Сбербанка?

Если на дисплее отображается одно из сообщений Вставьте карту или <Тип операции> Вставьте карту или приложите ее к экрану, то нужно соответствующим способом считать ее.

Если отображается сообщение Вставьте карту, то считывание возможно только карт с магнитной полосой и с чипом. Считывание бесконтактных карт не поддерживается

2.2.1 Как считывать карту с магнитной полосой без чипа?

Для считывания карты с магнитной полосой, ее нужно плавно установить и провести сверху вниз через магнитный считыватель.

После считывания карты на дисплее появится сообщение:

Далее, если необходимо, выбрать правильный тип карты.

Для карт с магнитной полосой (в зависимости от настроек) может потребоваться ввод 4 последних цифр:

2.2.2 Как считывать карту с чипом?

Карту с чипом нужно вставлять в чиповый считыватель чипом вверх. Чиповый считыватель обычно находится в нижнем торце терминала.

Карта должна оставаться в считывателе до окончания операции, пока на дисплее POS-терминала (и ПИН-клавиатуры – опционально) не появится сообщение Вытащите карту.

При попытке считать карту с чипом с помощью магнитной полосы на экране появится сообщение: На карте есть чип, Вставьте карту чипом. В этом случае нужно вставить карту в чиповый считыватель и продолжить выполнение операции.

После выполнения финансовой операции, на дисплее POS-терминала (на ПИН-клавиатуре — опционально) отобразится сообщение:

Если карта с чипом не читается, при этом на дисплее отображается сообщение Карта не читается. Попробуйте магнитный ридер (две подряд безуспешных попытки считывания), то карту можно считать по магнитной полосе.

2.2.3 Как считывать бесконтактную карту?

Для считывания бесконтактной карты (PayPass, PayWave) нужно приложить ее к дисплею POS-терминала или ПИН-клавиатуры, на которых отображается (мигает) логотип:

Над дисплеем POS-терминала или ПИН-клавиатуры мигают индикаторы.

Если логотип не появляется или над экраном нет индикаторов, значит, у POS-терминала или ПИН-клавиатуры нет бесконтактного считывателя. В этом случае карту нужно вставить в чиповый или магнитный считыватель.

6 Как провести сверку итогов на терминале Сбербанка?

В конце рабочего дня необходимо подвести итоги по терминалу. Эта операция называется СВЕРКОЙ ИТОГОВ. При проведении сверки итогов терминал передает в Банк список операций за день и печатает чек с отчетом.

Для проведения операции по сверке итогов нужно выполнить следующие действия:

№ шага

Порядок действий

Сообщение на дисплее терминала

В меню POS-терминала выбрать пункт СВЕРКА ИТОГОВ и нажать клавишу.

На клавиатуре POS-терминала нажать функциональную клавишу , расположенную под отображаемой на дисплее кнопкой Да.

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

По окончании операции терминал распечатает (в зависимости от настроек) либо ПОЛНЫЙ, либо КРАТКИЙ ОТЧЕТ. Распечатанный документ нужно передать в бухгалтерию предприятия.

В зависимости от того, как завершилась передача данных в Банк (успешно/сбой) и совпали ли итоги – на распечатанном чеке будет выведено одно из следующих сообщений:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *