Square API для вложений в счетах получили несколько частей запроса. Пожалуйста, поставьте только ноль или одну `части тиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Square API для вложений в счетах получили несколько частей запроса. Пожалуйста, поставьте только ноль или одну `части ти

Сообщение Anonymous »

Новые версии Square API 42+ имеют нарушающие изменения. Я пытаюсь перейти на VER V42, и я тестирую в локальной среде разработчика. < /P>
Я продолжаю получать следующую ошибку:

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

*** square.core.api_error.ApiError: status_code: 400, body: {'errors': [{'category': 'INVALID_REQUEST_ERROR', 'code': 'INVALID_CONTENT_TYPE', 'detail': 'Received multiple request parts. Please only supply zero or one `parts` of type application/json.'}]}

Когда я пытаюсь загрузить около ~ 800 байтов JPEG [очень зерно] в песочнице разработки для API Square с использованием следующего кода:

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

pdf_filepath = 'local/path/to/file.jpg'
idem_key = 'some-unique_key_like_square_invoice_id'
f_stream = open(pdf_filepath, "rb")
try:
# I have tried using a stream as well, still the same error
invoice_pdf = SQUARE_CLIENT.invoices.create_invoice_attachment(
invoice_id=square_original_invoice.id,
# this also does not work
# image_file=f_stream,
image_file=pdf_filepath,
request={
"description": f"Invoice-{pdf_filepath}",
"idempotency_key": idem_key,
},
)
except ApiError as e:
print(f"ERROR _attach_pdf_to_vendor_payment with errors {e}")
< /code>
В онлайн -API Sandbox API я получаю ошибку ответа 400: < /p>
// cache-control: no-cache
// content-type: application/json
// date: Wed, 30 Apr 2025 13:35:06 GMT
// square-version: 2025-04-16

{
"errors": [
{
"code": "BAD_REQUEST",
"detail": "Total size of all attachments exceeds Sandbox limit: 1000 bytes",
"category": "INVALID_REQUEST_ERROR"
}
]
}
< /code>
, как только я получил 900 байт JPG для загрузки в API Explorer (988 байт не прошел), но SDK по -прежнему ошибки с использованием того же файла.content-length: 1267
content-type: multipart/form-data; boundary=----WebKitFormBoundaryUUID38
square-version: 2025-04-16

user-agent: SquareExplorerGateway/1.0 SquareProperty ApiExplorer

------WebKitFormBoundaryUUID38
Content-Disposition: form-data;name="request"

{

"idempotency_key": "UUID-123-456-7869"
}
------WebKitFormBoundaryUUID38
Content-Disposition: form-data;name="file";filename="900b.jpeg"
Content-Type: image/jpeg

����
< /code>
Вот неудачный запрос API через мой сервер django, используя тот же файл: < /p>
content-length: 568
content-type: multipart/form-data; boundary=djangoUUID
square-version: 2025-04-16
accept-encoding: gzip
accept: */*
user-agent: squareup/42.0.0.20250416

--djangoUUID
Content-Disposition: form-data;name="request"
Content-Type: application/json;charset=utf-8

{
"description": "Invoice-path/to/file/900b.jpeg",
"idempotency_key": "path/to/original/file/normal-invoice.pdf"
}
--djangoUUID
Content-Disposition: form-data;name="image_file"
Content-Type: image/jpeg

/path/to/file/900b.jpeg
--djangoUUID--
< /code>
Обратите внимание на успешный запрос:
Content-Disposition: form-data;name="file";filename="900b.jpeg"< /code>
Content-Type: image/jpeg< /code> < /p>
и неудачный запрос:
Content-Disposition: form-data;name="request" 
контент-тип: приложение/json; charset = utf-8-контент-дискуссия: form-data; name = "image_file" content-type: image/jpeg`
Специально:

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

name="image_file"
vs name = "file" и application/json; charset = utf-8
Примечания:
Вот тестовое изображение
Я помню имя параметра ( vs Image_file ) Изображение является проблемой с устаревшими документами, но текущие документы показывают более новый параметр image_file правильным
Связанные документы https://developer.squareup.com/docs/inv ... ttachments. Незначительное изменение синтаксиса, и я знаю, что в настоящее время налагается ограничение на 1000 байтов для вложения, но почему я не могу загрузить вложения в песочницу сейчас? https://developer.squareup.com/forums/t ... pply-creo- или одни parts-of-type-application-json/22126

Подробнее здесь: https://stackoverflow.com/questions/796 ... lease-only
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»