В описании API сказано:
/api/kkms/search-kkms-ext - расширенный поиск кассы
Многа букафф из описания API:
Поиск ККТ по статусу (в ответ приходит список ККТ, сгруппированный по торговым точкам), по торговой точке, имени или номеру ККТ.
Кассы в списке будут содержать статус соединения (см. ниже).
В фильтре запроса статус передается как читаемое имя, а в ответе как код.
Online Status enumeratation
ONLINE((byte) 1),
OFFLINE((byte) 0),
BLOCKED((byte) 2),
UNKNOWN((byte) -1)
Параметры метода:
Параметр Где передается Тип Описание
filter.criteria Тело запроса, в Json String Поисковая строка. Касса и/или торговая точка попадает в список, если критерий поиска встретился в:
• имени торговой точки;
• имени кассы;
• регистрационном номере кассы;
• заводском номере кассы;
• внутреннем идентификаторе кассы.
filter.retailPlaceId Тело запроса, в Json String Идентификатор торговой точки. Принимает значение "-1", если принимаются во внимание все торговые точки
filter.monitoringFilter Тело запроса, в Json String Фильтрация по статусу касс
pagination.from Тело запроса, в Json Numeric Начальный индекс в списке, необязательный
pagination.to Тело запроса, в Json Numeric Конечный индекс в списке, необязательный
Пример запроса:
{"filter":
{"criteria":"",
"retailPlaceId":"-1",
"monitoringFilter":""},
"pagination":{"from":0,"to":4}
}
Так вот никак не соображу - как составить строку
Попробовал вот так:
Где $RegNomer - определен выше, сформированную строку вставляю в браузер - получаю:
SQL код:
For request 'GET /api/kkms/search-kkms-ext?{%22filter%22:{%22criteria%22:%220001676437030137%22,%22retailPlaceId%22:%22-1%22,%22monitoringFilter%22:%22%22},%22pagination%22:{%22from%22:0,%22to%22:4}}' [Cannot parse parameter kkmId as Int: For input string: "search-kkms-ext"]
Попробовал и без двоеточия, и замена двоеточия на ? - не выходит...
Чего я не понял???
Расширенный поиск ККТ
POST /api/kkms/search-kkms-ext
Возможно, дело в этом?
Что бы два раза не вставать:
Цитата:
При отправке запросов методом POST заголовок "Content-Type" должен иметь значение "application/json;charset=utf-8".
При отправке запросов методом GET заголовок "Content-Type" должен отсутствовать.
Цитата:
Аутентификация и CSRF-токен
Все запросы должны посылаться вместе с Cookie PLAY_SESSION, кроме вызова метода POST /api/user/login.
Во всех POST-запросах заголовок X-XSRF-TOKEN должен иметь значение, равное значению Cookie PLAY_SESSION.
Все равно <title>Bad Request</title>
Неправильно формирую строку в $url с фильтром. А как правильно ее сформировать - не соображу.
Вот ответ:
SQL код:
<h1>Bad Request</h1>
<p id="detail">
For request 'POST /api/kkms/search-kkms-ext?{"filter":{"criteria":"0001676437030137","retailPlaceId":"-1","monitoringFilter":""},"pagination":{"from":0,"to":4}}' [Invalid Json: No content to map due to end-of-input
at [Source: akka.util.ByteIterator$ByteArrayIterator$$anon$1@1633e3fa; line: 1, column: 0]]
</p>
Вот на такую строку:
https://org.1-ofd.ru/api/kkms/search-kkms-ext?{"filter":{"criteria":"0001676437030137","retailPlaceId":"-1","monitoringFilter":""},"pagination":{"from":0,"to":4}}
получил вот такой ответ:
....
[Invalid Json: No content to map due to end-of-input
at [Source: akka.util.ByteIterator$ByteArrayIterator$$anon$1@2e4e204e; line: 1, column: 0]]
....
<?php
/* проводит сверку УКМ-а и ОФД
на входе:
cash_id - айдишник кассы в УКМ-е - смотрим в УКМ-е
NomerSmenyUKM - номер смены в УКМ-е - смотрим в УКМ-е
RegNomer - регистрационный номер кассы - смотрим на зетке
NomerSmenyOFD - номер смены в ОФД - смотрим на зетке */
Если убираю ;X-CSRF-Token:" . $result)); - получаю отсутствие токена. С ним -
<p id="detail">
For request 'POST /api/kkms/search-kkms-ext' [Invalid Json: No content to map due to end-of-input
at [Source: akka.util.ByteIterator$ByteArrayIterator$$anon$1@25c32ac0; line: 1, column: 0]]
</p>
Хотя просто фильтр копи-пастил из описания...