Интеграция SetRetail 10 с внешним сервером валидации для контроля акцизных марок осуществляется с помощью методов веб-сервиса.
Описание протокола взаимодействия находится в WSDL-файле.
Веб-сервис SetRetail10 для стыковки с внешним сервером валидации использует 3 метода
Методы 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 :
Метод 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 секунд вся информация будет отправлена с кассы.