Публичное пространство
SetRetail10 ▪️ ЕГАИС ◾️ Интеграция со сторонним сервером валидации акцизных марок
Описание
Интеграция SetRetail 10 с внешним сервером валидации для контроля акцизных марок осуществляется с помощью методов веб-сервиса.
Описание протокола взаимодействия находится в .
Веб-сервис SetRetail10 для стыковки с внешним сервером валидации использует 3 метода
canSale
canRefund
sendExciseData
Методы вызова данных
Первый тип - 2 метода canSale и canRefund
Методы canSale и canRefund вызываются при сканировании акцизной марки и используются для контроля добавления товара в чек.
Метод canSale используется для проверки возможности добавления товара с акцизной маркой в чек продажи,
Метод canRefund используется для проверки добавления товара в чек возврата.
Для вызова данных методов формируется запрос c данными в виде xml-структуры, в которой передаются следующие поля из открытого чека:
номер магазина
номер кассы
номер смены
номер чека
штрих-код товара
акцизная марка
тип операции (продажа или возврат)
отметка времени
Выше-указанные поля кодируются в Base64 и в виде строки передаются в метод.
На вызов этих методов должен прийти ответ, который формируется в виде составного объекта при этом сервер валидации не должен кодировать свой ответ в Base64.
Пример запроса:
Пример запроса в формате xml ():
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cheque>
<shopIndex>123</shopIndex>
<cashNumber>1</cashNumber>
<shiftNumber>23</shiftNumber>
<number>123</number>
<barcode>4612345678123</barcode>
<excise>22N000004CVF7RE1VM90CAK61215001029004M1FI13Q7UHUKGJX6KL9D4IMEBYIB695</excise>
<operation>true</operation>
<datetime>0311161651</datetime>
</cheque>
Описание полей:
Название поля | Описание |
shopIndex | Номер магазина |
cashNumber | Номер кассы |
shiftNumber | Номер смены |
number | Номер чека |
barcode | Штрих-код товара |
excise | Акцизная марка товара |
operation | Операция продажи или возврата: |
datetime | Дата продажи (формат ddMMyyHHmm )* |
Для передачи параметра timestamp используется строковый формат ddMMYYHHmm
- первые 2 цифры (dd) - день месяца
- 3 и 4 цифры (MM) - месяц
- 5 и 6 цифра (YY) - год
- 7 и 8 цифра (HH) - часы в формате 24
- 9 и 10 цифры (mm) - минуты
В wsdl файле , который должен находиться на сервере валидации описаны типы данных возвращаемых ответов:
<xs:complexType name="exciseValidationResult">
<xs:sequence>
<xs:element name="resultMessage" type="xs:string" minOccurs="0"/>
<xs:element name="resultValue" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
Пример ответа в формате xml () из инструмента SOAP UI метода canSale :
Пример ответа в формате xml () из инструмента SOAP UI метода canRefund :
Второй тип - 1 метод sendExciseData
Метод sendExciseData вызывается после фискализации чека, и предназначен для фиксации на внешнем сервере валидации самого факта продажи или возврата товара товара с акцизной маркой. Для вызова данного метода формируется запрос c данными в виде xml-структуры, в которой передаются следующие поля:
номер магазина
номер кассы
номер смены
номер чека
тип операции (продажа или возврат)
отметка времени (для каждой бутылки)
штрих-код товара товара
акцизная марка
цена
объем
Эти данные кодируются в Base64 и в виде строки передаются в метод. На вызов данного метода не предполагается никакого ответа от сервера. Данные просто отправляются для хранения на сервер валидации.
Пример запроса в формате xml ():
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cheque>
<shopIndex>3</shopIndex>
<cashNumber>2</cashNumber>
<shiftNumber>13</shiftNumber>
<number>143</number>
<operation>true</operation>
<Bottle>
<datetime>0312161651</datetime>
<barcode>4612345678321</barcode>
<excise>22N000004CVF7RE1VM90CAK61215001029004M1FI13Q7UHUKGJX6KL9D4IMEBYIB695</excise>
<price>123</price>
<volume>50</volume>
</Bottle>
<Bottle>
<datetime>0311161651</datetime>
<barcode>4612345678321</barcode>
<excise>23N002344CVF7RE1VM90CAK61215001029004M1FI13Q7UHUKGJX6KL9D4IMEBYIB695</excise>
<price>135</price>
<volume>40</volume>
</Bottle>
</cheque>
Описание полей:
Название поля | Описание |
shopIndex | Номер магазина |
cashNumber | Номер кассы |
shiftNumber | Номер смены |
number | Номер чека |
operation | Операция продажи или возврата: |
<Bottle> |
|
datetime | Дата продажи (формат ddMMyyHHmm)* |
barcode | Штрих-код товара |
price | Цена товара |
volume | Процент содержания спирта |
Для передачи параметра timestamp используется строковый формат ddMMYYHHmm
- первые 2 цифры (dd) - день месяца
- 3 и 4 цифры (MM) - месяц
- 5 и 6 цифра (YY) - год
- 7 и 8 цифра (HH) - часы в формате 24
- 9 и 10 цифры (mm) - минуты
Пример пустого ответа метода sendExciseData
Диаграммы взаимодействия с сервером валидации
Добавление товара с акцизной маркой с проверкой её статуса
Подтверждение продажи товара с акцизной маркой
Возврат товара с акцизной маркой и проверкой статуса
Регистрация чека возврата
Отложенная доставка данных на внешний сервер валидации
Реализовано в версии 10.2.32.0
Может произойти ситуация, когда внешний сервер валидации акцизных марок недоступен. В этом случае на кассе информация для отправки на него (внешний сервер валидации) будет отложена до восстановления связи.
После восстановления с связи с сервером валидации в течении 30 секунд вся информация будет отправлена с кассы.