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

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

Описание

Интеграция SetRetail 10 с внешним сервером валидации для контроля акцизных марок осуществляется с помощью методов веб-сервиса.

Описание протокола взаимодействия находится в WSDL-файле.

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

© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных