SetRetail10 ▪️ ЕГАИС ◾️ Интеграция со сторонним сервером валидации акцизных марок

Публичное пространство

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

Операция продажи или возврата:
- true - продажа
- false - возврат

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

Операция продажи или возврата:
- true - продажа
- fasle - возврат

<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 секунд вся информация будет отправлена с кассы.