Конструктивное предложение

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
zeroabe
Сообщения: 8
Зарегистрирован: 24 май 2017, 17:45

Конструктивное предложение

Сообщение zeroabe » 19 июн 2017, 16:27

Господа разработчики. Убедительно Вас прошу добавить в ответы помимо error ещё и классифицированный error_code. Без этого обработка ошибок становится делом крайне неприятным и, часто, просто бессмысленным.

Audim
Администратор
Сообщения: 1672
Зарегистрирован: 17 мар 2015, 18:36

Re: Конструктивное предложение

Сообщение Audim » 19 июн 2017, 19:22

Я думал об этом.
Но не срастается:

-коды ошибок у всех ККТ разные,
-даже логика ошибок иногда разная.
-У некоторых вообще нет кодов ошибок - все текстом.
-А у некоторых коды-то есть, а описания их нету...

Да из драйверов dll у unitserver не получится сделать.....

zeroabe
Сообщения: 8
Зарегистрирован: 24 май 2017, 17:45

Re: Конструктивное предложение

Сообщение zeroabe » 19 июн 2017, 19:59

Audim писал(а):Я думал об этом.
Но не срастается:

-коды ошибок у всех ККТ разные,
-даже логика ошибок иногда разная.
-У некоторых вообще нет кодов ошибок - все текстом.
-А у некоторых коды-то есть, а описания их нету...

Да из драйверов dll у unitserver не получится сделать.....
Почему я догадывался?

zeroabe
Сообщения: 8
Зарегистрирован: 24 май 2017, 17:45

Re: Конструктивное предложение

Сообщение zeroabe » 19 июн 2017, 20:01

Тогда вопрос такого содержания:
Вроде бы все объекты ответов содержат свойство "Status", одно из значений которого обозначает ошибку. Так вот, допустим, если я словил ошибку от ккм в ответе - значение этого свойства будет == 2? Или они друг от друга не зависят?

Audim
Администратор
Сообщения: 1672
Зарегистрирован: 17 мар 2015, 18:36

Re: Конструктивное предложение

Сообщение Audim » 19 июн 2017, 20:43

Да, если была ошибка то Status = 2.

Кроме одного исключения:
Если регистрация чека выполнена и получили ошибку уже после регистрации чека (во время вытягивания фискальных данных по чеку) то тогда Status = 0 (чек-то зарегистрирован, второй раз регистрировать нельзя) а в поле "Error" будет текст ошибки.

Аватара пользователя
oum
Сообщения: 113
Зарегистрирован: 03 июн 2017, 17:44
Откуда: Lipetsk,Russia
Контактная информация:

Re: Конструктивное предложение

Сообщение oum » 20 июн 2017, 22:01

А еще когда внутренняя ошибка "Status": 0 не есть гуд
я сейчас еще мучаю Kkm web-server Version : 2.0.20.03

Код: Выделить всё

{
    "Error": "Message: Error converting value {null} to type 'System.DateTime'. Path 'OFD_DateErrorDoc', line 1, position 162.\n\r   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)\r\n   в Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)\r\n   в Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)\r\n   в Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)\r\n   в Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)\r\n   в KkmFactory.FileHandler.\u0003 .\u0002()",
    "Status": 0,
    "Command": "",
    "IdCommand": ""
}

Аватара пользователя
oum
Сообщения: 113
Зарегистрирован: 03 июн 2017, 17:44
Откуда: Lipetsk,Russia
Контактная информация:

Re: Конструктивное предложение

Сообщение oum » 20 июн 2017, 22:02

а заявлено
// Все у которых дата окончания работы ФН меньше указанной. Дата-время. Если null или не указано то любое

Audim
Администратор
Сообщения: 1672
Зарегистрирован: 17 мар 2015, 18:36

Re: Конструктивное предложение

Сообщение Audim » 20 июн 2017, 23:10

2 косяка за раз....
Подправил и то и то.

zeroabe
Сообщения: 8
Зарегистрирован: 24 май 2017, 17:45

Re: Конструктивное предложение

Сообщение zeroabe » 21 июн 2017, 13:26

Audim писал(а):Да, если была ошибка то Status = 2.

Кроме одного исключения:
Если регистрация чека выполнена и получили ошибку уже после регистрации чека (во время вытягивания фискальных данных по чеку) то тогда Status = 0 (чек-то зарегистрирован, второй раз регистрировать нельзя) а в поле "Error" будет текст ошибки.
Но в этом случае информацию по чеку можно получить по его ID?

Audim
Администратор
Сообщения: 1672
Зарегистрирован: 17 мар 2015, 18:36

Re: Конструктивное предложение

Сообщение Audim » 21 июн 2017, 13:35

К сожалению нет.
Но сейчас народ обновил прошивки в ККТ и такие ошибки перестали встречается...

Ответить