Публичное пространство
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, ООО «Кристалл Сервис Интеграция».
Все права защищены..