ОФД - получение данных о покупке запросом curl
Получаем пароль
-- Тестировалось на CentOS 6.10
Доустановить если нет:
yum -y install jq
Почту, имя, номер телефона пропишите свои, выполняется один раз.
#!/usr/bin/env bash EMAIL=alexandr@xyz.com NAME=Alexandr PHONE=+7906******* curl -X POST -H "Content-Type: application/json; charset=UTF-8" \ https://proverkacheka.nalog.ru:9999/v1/mobile/users/signup -d \ "{\"email\":\"$EMAIL\", \"name\": \"$NAME\", \"phone\": \"$PHONE\"}" -i
на ваш номер телефона прийдет смс с паролем (цифровым)
Получение данных
#!/usr/bin/env bash # -- Запрос на детали # -- номер фискального накопителя - ФН - 9282000100044265 - fiscalDriveNumber # -- фискальный признак документа - ФП/ФПД - 626244725 - fiscalSign # -- ФИСКАЛЬНЫЙ ДОКУМЕНТ - ФД - 17386 - fiscalDocumentNumber PHONE=+7906******* PASS=977*** # -- FN=9282000100044265 FPD=626244725 FD=17386 # -- DERVICEID=curl DEVICEOS=linux curl -H "Device-Id: $DERVICEID" -H "Device-OS: $DEVICEOS" \ "https://$PHONE:$PASS@proverkacheka.nalog.ru:9999/v1/inns/*/kkts/*/\ fss/$FN/tickets/$FD?fiscalSign=$FPD&sendToEmail=no" -i | tail -n 1 | jq '.'
tail -n 1 - выводит нам последнюю строку в формате json cо списком покупок. Иначе в начале еще бы вывелся заголовок:
HTTP/1.1 200 OK X-Powered-By: Express Content-Type: application/json; charset=utf-8 Content-Length: 1895 ETag: W/"767-yql7Eu86VNW2LRdaDAikLQ" Date: Mon, 24 Sep 2018 14:44:07 GMT Connection: keep-alive
далее jq красиво выводит нам в консоль наш json.
Выхлоп в консоль:
"document": { "receipt": { "operationType": 1, "shiftNumber": 80, "kktRegId": "0000246532062233 ", "requestNumber": 88, "fiscalDriveNumber": "9282000100044265", "userInn": "7703270067", "totalSum": 95300, "fiscalDocumentNumber": 17386, "cashTotalSum": 95300, "taxationType": 1, "dateTime": "2018-09-24T20:20:00", "postpaymentSum": 0, "ecashTotalSum": 0, "nds18": 3922, "items": [ { "ndsRate": 2, "name": "ЛУК РЕПЧАТЫЙ ПЦ ВЕС", "sum": 1406, "ndsSum": 128, "quantity": 1.012, "price": 1389 }, { "ndsRate": 1, "name": "СОЧНИКНЕЖНОСТЬ ВЕС", "sum": 12702, "ndsSum": 1938, "quantity": 0.638, "price": 19909 }, { "ndsRate": 2, "name": "КАРТОФЕЛЬ КРАСН ВЕC", "sum": 1659, "ndsSum": 151, "quantity": 2.074, "price": 800 }, { "ndsRate": 2, "name": "ХЛЕБ 1С ИНСКОЙ 0,45", "sum": 2298, "ndsSum": 209, "quantity": 1, "price": 2298 }, { "ndsRate": 2, "name": "КАРТОФЕЛЬ ВЕС", "sum": 4688, "ndsSum": 426, "quantity": 2.774, "price": 1690 }, { "ndsRate": 2, "name": "ХЛЕБ/ПШЕН.МУКИ 400ГР", "sum": 2552, "ndsSum": 232, "quantity": 1, "price": 2552 }, { "ndsRate": 2, "name": "КАРТОФЕЛЬ КРАСН ВЕC", "sum": 1789, "ndsSum": 163, "quantity": 2.236, "price": 800 }, { "ndsRate": 2, "name": "МОРСКОЙ МИКС В 430Г", "sum": 19398, "ndsSum": 1763, "quantity": 1, "price": 19398 }, { "ndsRate": 1, "name": "ВАФЛИ С ХАЛВОЙ 300 Я", "sum": 8148, "ndsSum": 1243, "quantity": 2, "price": 4074 }, { "ndsRate": 1, "name": "GM ВАФ ШОК ЯШ 300Г", "sum": 4858, "ndsSum": 741, "quantity": 1, "price": 4858 }, { "ndsRate": 2, "name": "КРАБ.ПАЛОЧКИ,КД 200Г", "sum": 8800, "ndsSum": 800, "quantity": 2, "price": 4400 }, { "ndsRate": 2, "name": "МАСЛО ПОД РАФ 850МЛ", "sum": 5190, "ndsSum": 472, "quantity": 1, "price": 5190 }, { "ndsRate": 2, "name": "ПЕЛЬМ.ТОМ.МОЛОК.800Г", "sum": 21833, "ndsSum": 1985, "quantity": 1, "price": 21833 } ], "fiscalSign": 626244725, "operator": "Каpпова Веpа", "counterSubmissionSum": 0, "prepaymentSum": 0, "receiptCode": 3, "nds10": 6328
Пример, заменим:
jq '.'
на
jq '.document[].items[] | "\(.name) -- \(.sum)"'
получим
"ЛУК РЕПЧАТЫЙ ПЦ ВЕС -- 1406" "СОЧНИКНЕЖНОСТЬ ВЕС -- 12702" "КАРТОФЕЛЬ КРАСН ВЕC -- 1659" "ХЛЕБ 1С ИНСКОЙ 0,45 -- 2298" "КАРТОФЕЛЬ ВЕС -- 4688" "ХЛЕБ/ПШЕН.МУКИ 400ГР -- 2552" "КАРТОФЕЛЬ КРАСН ВЕC -- 1789" "МОРСКОЙ МИКС В 430Г -- 19398" "ВАФЛИ С ХАЛВОЙ 300 Я -- 8148" "GM ВАФ ШОК ЯШ 300Г -- 4858" "КРАБ.ПАЛОЧКИ,КД 200Г -- 8800" "МАСЛО ПОД РАФ 850МЛ -- 5190" "ПЕЛЬМ.ТОМ.МОЛОК.800Г -- 21833"