Задать вопрос
gnifajio
@gnifajio
Совершенствуюсь каждый день

QIWI API ошибка 400?

Пытаюсь выставить счет с помощью QIWI API. Все вроде с документации слизал.
Пока что ограничиваюсь созданием формы на 1р.
Мой код:

import requests
import json
import uuid



def test():
    payment_id = uuid.uuid4()
    secret_qiwi_key = 'eyJ2ZXJzaW9uIjoiUDJQIiwiZGF0YSI6eyJwYXlpbl9tZXJjaGFudF9zaXRlX3VpZCI6InpmemZ6Zi05OSIsInVzZXJfaWQiOiIrNzkxMjM0NTY3ODkiLCJzZWNyZXQiOiJ3fnBTQC1me2Fvbjd8Vmo4SnI1KXk/bURGRDRQZH5zODtTUU9aU3RSRFAwVXYrR2RTXTtyNWgqMj1zdilJZ08yIn19'
    url = f'https://api.qiwi.com/partner/bill/v1/bills/{payment_id}'
    headers = {
        'content-type': 'application/json',
        'accept': 'application/json',
        'authorization': f'Bearer {secret_qiwi_key}'
    }

    data = {
        'amount':{
            'currency': 'RUB',
            'value': '1.00'
        },
         "expirationDateTime": "2029-11-11T24:59:59+03:00",
    }
    resp = requests.put(url=url, data=data, headers=headers)
    
    return resp, payment_id

q = test()

print(f' [{q[0].ok} {q[0].status_code}] {q[0].content}')


Вывод:
[False 400] b'{"serviceName":"invoicing-api","errorCode":"http.message.conversion.failed","description":"Bad request","userMessage":"Bad request","dateTime":"2022-03-19T18:51:52.926+03:00","traceId":"ffeeddbb33cc11cc"}'

Только пожалуйста не ссылку на документацию, я ее и так читал.
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Не передавайте Content-Type, requests сам умеет его генерировать.

resp = requests.put(url=url, json=data, headers=headers)


Т.к. тип контента у Вас application/json, данные нужно передать в параметр json, из заголовков тип контента удаляем
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы