странные ответы сервера

Mini web-сервер для печати чеков на фискальных регистраторах из мобильных приложений через HTTP запрос JSON.
Ответить
clip
Сообщения: 2
Зарегистрирован: 23 июн 2019, 12:33

странные ответы сервера

Сообщение clip » 23 июн 2019, 14:01

Пытаюсь изучить kkmserver на предмет использования в нашей конторе. работаю на С++ , у меня свой класс запросов к HTTP серверу.
при одинаковых запросах к серверу получаю разные ответы. может я что то делаю не правильно, а может это хитрая защита от использования не лицензионного сервера.

а так же можно ли прокомментировать, какие минимальные поля нужно заполнять при приеме платежа за ЖКУ, т.к. товара как такового нет, а это только услуга

сам запрос
{
"Command": "RegisterCheck",
"NumDevice": 0,
"IdDevice": "",
"IdCommand": "d6280b3e-2f62-4ae2-a2d4-d05708243ec7",
"IsFiscalCheck": true,
"TypeCheck": 0,
"CheckStrings": [
{
"Register": {
"Name": "Услуги ЖКУ",
"Quantity": 1,
"Price": 1000,
"Amount": 500,
"Tax": 0,
"SignMethodCalculation": 4,
"SignCalculationObject": 4
}
}
]
}
ответы:

1 вариант.
>> POST /Execute HTTP/1.1
>> Host: 127.0.0.1:5893
>> User-Agent: Mozilla / 5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko / 20100101 Firefox / 67.0
>> Authorization: Basic VXNlcjo=
>> Content-Type: application/json; charset=windows-1251
>> Accept: */*
>> Connection: Keep-Alive
>> Content-Length: 402
>>
<< HTTP/1.1 401 Unauthorized
<< Access-Control-Allow-Origin: *
<< WWW-Authenticate: Basic realm="Please login!"
<< content-length: 0
2 вариант.
>> POST /Execute HTTP/1.1
>> Host: 127.0.0.1:5893
>> User-Agent: Mozilla / 5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko / 2010101 Firefox / 67.0
>> Authorization: Basic VXNlcjo=
>> Content-Type: application/json; charset=windows-1251
>> Accept: */*
>> Connection: Keep-Alive
>> Content-Length: 402
>>
<< HTTP/1.1 417 Expectation Failed
<< Access-Control-Allow-Origin: *
<< content-type: text/html; charset=utf-8
<< Cache-Control: no-store, no-cache, must-revalidate
<< content-length: 94
<<
Ссылка на объект не указывает на экземпляр объекта.
3 и правильный вариант
>> POST /Execute HTTP/1.1
>> Host: 127.0.0.1:5893
>> User-Agent: Mozilla / 5.0 (Windows NT 6.1; Win64; x64; rv:67.0) Gecko / 20100101 Firefox / 67.0
>> Authorization: Basic VXNlcjo=
>> Content-Type: application/json; charset=windows-1251
>> Accept: */*
>> Connection: Keep-Alive
>> Content-Length: 402
>>
<< HTTP/1.1 200 OK
<< Access-Control-Allow-Origin: *
<< content-type: application/json; charset=utf-8
<< Cache-Control: no-store, no-cache, must-revalidate
<< content-length: 127
<<
{
"Command": "RegisterCheck",
"Error": "",
"Warning": "",
"Status": 0,
"IdCommand": "e87616a6-a3bc-4b73-b6cc-fbe10504d2c6",
"NumDevice": 1
}

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

Re: странные ответы сервера

Сообщение Audim » 23 июн 2019, 18:48

Сам запрос:
Нет указания способа оплаты:
// Наличная оплата (2 знака после запятой)
Cash: 800,
// Сумма электронной оплаты (2 знака после запятой)
ElectronicPayment: 0.01,
// Сумма из предоплаты (зачетом аванса) (2 знака после запятой)
AdvancePayment: 0,
// Сумма постоплатой(в кредит) (2 знака после запятой)
Credit: 0,
// Сумма оплаты встречным предоставлением (сертификаты, др. мат.ценности) (2 знака после запятой)
CashProvision: 0,

1. Ошибка 401 - не авторизован.
Стандартный HTTP ответ на отсутствие Basic авторизации в запросе - фактически запрос на авторизацию. Все по HTTP стандарту.
Что-бы не возникал такой ответ нужно в HTTP запросе:
- вставить заголовок: "Authorization" со значением: "Basic " + ФункцияКодированияBase64(User + ":" + Password)
У Вас в запросе "User:" (т.е. пароль пустой) - проверьте что в настройках kkmservr для User не задано пароля.

2. 417 ошибка - Не правильный JSON запроса

clip
Сообщения: 2
Зарегистрирован: 23 июн 2019, 12:33

Re: странные ответы сервера

Сообщение clip » 24 июн 2019, 01:05

перечисленные поля добавил и еще несколько других. обнаружил странный эффект: VS 2017 в отладке повторяет предыдущие ошибки. но в релизной версии корректные ответы стабильны, скорее всего проблема отправлении данных по сокету в студии в режиме отладки. перешел на эту версию компилятора недавно, раньше такого не было. вопрос закрыт

присоединяюсь к вопросу о возвращении значения ФПД в ответе, т.к. для нашей системы критично хранить этот параметр

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

Re: странные ответы сервера

Сообщение Audim » 27 июн 2019, 01:32

Ок.

Tonik992
Сообщения: 26
Зарегистрирован: 06 ноя 2018, 13:54

Re: странные ответы сервера

Сообщение Tonik992 » 27 июн 2019, 12:40

clip писал(а):
24 июн 2019, 01:05
перечисленные поля добавил и еще несколько других. обнаружил странный эффект: VS 2017 в отладке повторяет предыдущие ошибки. но в релизной версии корректные ответы стабильны, скорее всего проблема отправлении данных по сокету в студии в режиме отладки. перешел на эту версию компилятора недавно, раньше такого не было. вопрос закрыт

присоединяюсь к вопросу о возвращении значения ФПД в ответе, т.к. для нашей системы критично хранить этот параметр
Плюсану, пожалуй. Мы, конечно, можем парсить QR-код - это и делаем. Но ФПД в ответе будет для нас намного лучше)

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

Re: странные ответы сервера

Сообщение Audim » 27 июн 2019, 12:45

Лентяи :)

Ответить