170 lines
15 KiB
Plaintext
170 lines
15 KiB
Plaintext
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
// Заполняет структуру параметров карты.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура.
|
||
Функция ПараметрыКарты() Экспорт;
|
||
|
||
Результат = Новый Структура();
|
||
|
||
Результат.Вставить("ОтПоследнейОперации");
|
||
Результат.Вставить("НомерКарты"); // Строка - Маскированный номер карты.
|
||
Результат.Вставить("ХешНомерКарты"); // Строка - PAN карты хешированном по алгоритму SHA256 виде.
|
||
Результат.Вставить("ТипКарты"); // Строка - Тип карты (VISA,MasterCard).
|
||
Результат.Вставить("СвояКарта"); // Булево - Карта банка которые предоставляет услуги эквайринга.
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// Заполняет структуру получение параметров карты.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура.
|
||
//
|
||
Функция ПараметрыПолучениеПараметровКарты() Экспорт;
|
||
|
||
Результат = Новый Структура();
|
||
Результат.Вставить("ОтПоследнейОперации", Ложь);
|
||
Результат.Вставить("РеквизитыКартыQR"); // Строка,Необязательно - Отсканированный QR-код с мобильном устройства держателя карты, в котором содержатся EMV-реквизиты карты или токена.
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// Заполняет структуру параметров выполнения эквайринговой операции.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура.
|
||
//
|
||
Функция ПараметрыВыполненияЭквайринговойОперации() Экспорт;
|
||
|
||
Результат = Новый Структура();
|
||
Результат.Вставить("ДокументОснование");// Строка,Необязательно - ОпределяемыйТип.ОснованиеФискальнойОперацииБПО.
|
||
Результат.Вставить("ТипТранзакции"); // Строка,Обязательно - Тип транзакции.
|
||
Результат.Вставить("РеквизитыКартыQR"); // Строка,Необязательно - Отсканированный QR-код с мобильном устройства держателя карты, в котором содержатся EMV-реквизиты карты или токена.
|
||
Результат.Вставить("СуммаОперации", 0); // Число,Обязательно - Сумма операции.
|
||
Результат.Вставить("СуммаОригинальнойОперации", 0); // Число,Необязательно - Сумма оригинальной операции.
|
||
Результат.Вставить("СуммаНаличных", 0); // Число,Необязательно - Сумма выдаваемых наличных.
|
||
Результат.Вставить("НомерМерчанта"); // Целое,Необязательно - Номер мерчанта доступного для данного эквайрингового терминала.
|
||
Результат.Вставить("НомерКарты"); // Строка,Необязательно - Маскированный номер карты.
|
||
Результат.Вставить("НомерЧека"); // Строка,Необязательно - Номер чека.
|
||
Результат.Вставить("НомерЧекаЭТ"); // Строка,Необязательно - Номер чека эквайрингового терминала.
|
||
Результат.Вставить("СсылочныйНомер"); // Строка,Необязательно - Уникальный код транзакции RRN.
|
||
Результат.Вставить("КодАвторизации"); // Строка,Необязательно - Код авторизации транзакции.
|
||
Результат.Вставить("ТекстСлипЧека"); // Строка,Необязательно - Текст квитанции, сформированный Эквайринговым ПО.
|
||
Результат.Вставить("ИспользоватьБиометрию", Ложь); // Булево,Необязательно - Разрешено использовать биометрию для операции.
|
||
Результат.Вставить("ВидОплатыНаТерминалеКод", 0); // Число, Необязательно - Код вида оплаты на терминале.
|
||
Результат.Вставить("ВидОплатыНаТерминале"); // Перечисление.ВидОплатыНаТерминале, Необязательно - Вид оплаты на терминале.
|
||
// Параметры выполнения эквайринговой операции c электронным сертификатом.
|
||
Результат.Вставить("СуммаЭлектронногоСертификата", 0); // Число,Обязательно - Сумма операции за счет электронных сертификатов.
|
||
Результат.Вставить("СуммаСобственныхСредств" , 0); // Число,Обязательно - Сумма операции за счет собственных средств по карте.
|
||
Результат.Вставить("ИдентификаторКорзины"); // Строка,Необязательно - Передается Basket ID – Уникальный идентификатор операции в ФЭС НСПК.
|
||
// Basket ID операции оплаты в ФЭС НСПК. Необходим для операции возврата без карты в рамках текущего операционного дня.
|
||
Результат.Вставить("ИдентификаторКорзиныОперацииОплаты"); // Строка,Необязательно - Basket ID операции оплаты в ФЭС НСПК.
|
||
Результат.Вставить("ИдентификаторЗапроса"); // Строка,Необязательно - Уникальный идентификатор запроса к эквайринговому терминалу.
|
||
Результат.Вставить("ИдентификаторФискальнойОперации"); // Строка,Необязательно - Уникальный идентификатор фискальной операции.
|
||
Результат.Вставить("ИспользоватьПечатающееУстройство", Истина); // Булево,Необязательно - определяет использование печатного устройства при выполнении фискальной операции.
|
||
// Расширение
|
||
Результат.Вставить("ХешНомерКарты"); // Строка,Необязательно - PAN карты хешированном по алгоритму SHA256 виде.
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// Заполняет структуру параметров проведенной эквайринговой операции.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура.
|
||
//
|
||
Функция ПараметрыПроведеннойЭквайринговойОперации() Экспорт;
|
||
|
||
Результат = Новый Структура();
|
||
Результат.Вставить("ТипТранзакции"); // Строка,Обязательно - Тип транзакции.
|
||
Результат.Вставить("НомерМерчанта"); // Целое,Необязательно - Номер мерчанта доступного для данного эквайрингового терминала.
|
||
Результат.Вставить("НомерКарты"); // Строка,Необязательно - Маскированный номер карты.
|
||
Результат.Вставить("ХешНомерКарты"); // Строка,Необязательно - Хеш номер карты.
|
||
Результат.Вставить("СуммаОперации", 0); // Число,Обязательно - Сумма операции.
|
||
Результат.Вставить("СуммаНаличных", 0); // Число,Необязательно - Сумма выдаваемых наличных.
|
||
Результат.Вставить("СуммаЭлектронногоСертификата", 0); // Число,Необязательно - Сумма операции за счет электронных сертификатов.
|
||
Результат.Вставить("СуммаСобственныхСредств" , 0); // Число,Необязательно - Сумма операции за счет собственных средств по карте.
|
||
Результат.Вставить("СсылочныйНомер"); // Строка,Необязательно - Ссылочный номер.
|
||
Результат.Вставить("КодАвторизации"); // Строка,Необязательно - Код авторизации.
|
||
Результат.Вставить("ДатаВремя"); // Дата,Необязательно - Дата и время инициализации транзакции, содержит локальную дату и время инициализации транзакции
|
||
Результат.Вставить("КодЗавершения"); // Число,Необязательно - Дополнительный код завершения операции.
|
||
Результат.Вставить("ИдентификаторПлатежнойСистемы"); // Строка,Необязательно - Уникальный идентификатор платежной системы, через которую проводилась операция.
|
||
Результат.Вставить("ИдентификаторБанковскойТранзакции"); // Строка,Необязательно - Уникальный идентификатор банковской транзакции, формируемый на стороне банка-эмитента.
|
||
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
// Проверяет, что QR-код в формате Base64-строки является Consumer-Presented QR
|
||
//
|
||
// Параметры:
|
||
// QRКод - Строка
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево
|
||
Функция ЭтоРеквизитыКартыQR(Знач QRКод) Экспорт
|
||
|
||
// Функциональные требования к терминально-кассовому модулю (POI) по обработке транзакции
|
||
// Проверка, что QR-код в формате Base64-строки начинается с «hQVDUFY» (индикатор версии и формата).
|
||
Результат = СтрНачинаетсяС(QRКод, "hQVDUFY"); //@NON-NLS-1 @NON-NLS-2
|
||
Возврат Результат;
|
||
|
||
КонецФункции
|
||
|
||
Функция ТипыПлатежнойСистемыККТ() Экспорт
|
||
|
||
Соответствие = Новый Соответствие();
|
||
|
||
Соответствие.Вставить("СистемаБыстрыхПлатежей" , ПредопределенноеЗначение("Перечисление.ТипыПлатежнойСистемыККТ.СистемаБыстрыхПлатежей"));
|
||
Соответствие.Вставить("СертификатНСПК" , ПредопределенноеЗначение("Перечисление.ТипыПлатежнойСистемыККТ.СертификатНСПК"));
|
||
Соответствие.Вставить("ЮКасса" , ПредопределенноеЗначение("Перечисление.ТипыПлатежнойСистемыККТ.ЮКасса"));
|
||
|
||
Возврат Соответствие;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает текст слип-чека по умолчанию
|
||
//
|
||
// Параметры:
|
||
// ПараметрыСлипЧека - Структура - Параметры слип чека:
|
||
// * КодАвторизации - Строка
|
||
// * НомерКарты - Строка
|
||
// * НомерЧекаЭТ - Строка
|
||
// * СсылочныйНомер - Строка
|
||
// * СуммаОперации - Число
|
||
// * ТекстСлипЧека - Строка
|
||
// КороткийСлипЧек - Булево - сформировать текст короткого слип-чека
|
||
//
|
||
// Возвращаемое значение:
|
||
// Строка - Текст слип чека
|
||
//
|
||
Функция ТекстСлипЧекаПоУмолчанию(ПараметрыСлипЧека, КороткийСлипЧек = Истина) Экспорт
|
||
|
||
Если ПараметрыСлипЧека.Результат Тогда
|
||
Текст = НСтр("ru = 'ПЛАТЕЖНАЯ ОПЕРАЦИЯ'") + Символы.ПС;
|
||
Текст = Текст + СтрШаблон(НСтр("ru = 'Код авторизации: %1'"), ПараметрыСлипЧека.КодАвторизации) + Символы.ПС;
|
||
Текст = Текст + СтрШаблон(НСтр("ru = 'Номер карты: %1'"), ПараметрыСлипЧека.НомерКарты) + Символы.ПС;
|
||
Текст = Текст + СтрШаблон(НСтр("ru = 'Номер чека ЭТ: %1'"), ПараметрыСлипЧека.НомерЧекаЭТ) + Символы.ПС;
|
||
Текст = Текст + СтрШаблон(НСтр("ru = 'Ссылочный номер: %1'"), ПараметрыСлипЧека.СсылочныйНомер) + Символы.ПС;
|
||
Если ПараметрыСлипЧека.Свойство("СуммаОперации") Тогда
|
||
Текст = Текст + СтрШаблон(НСтр("ru = 'Сумма: %1'"), ПараметрыСлипЧека.СуммаОперации) + Символы.ПС;
|
||
КонецЕсли;
|
||
Если Не КороткийСлипЧек И ПараметрыСлипЧека.Свойство("ТекстСлипЧека") Тогда
|
||
Текст = Текст + ПараметрыСлипЧека.ТекстСлипЧека;
|
||
КонецЕсли;
|
||
Иначе
|
||
Текст = НСтр("ru = 'ОПЕРАЦИЯ ОТКЛОНЕНА'") + Символы.ПС;
|
||
Текст = Текст + ПараметрыСлипЧека.ОписаниеОшибки;
|
||
КонецЕсли;
|
||
|
||
Возврат Текст;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|