Выставить счет для оплаты через API QIWI на Python
Прошу помочь разобраться и привести пример работающего кода, создающего новый счет, используя QIWI API. Мой код, который выдает ошибку 400:
billid = "83891273832"
headers = {
"content-Type": "application/json",
"accept": "application/json",
"Authorization": "Bearer SECRET_CODE",
"User-Agent": "Chrome/86.0.4240.111"
}
payload = {
"amount": {
"currency": "RUB",
"value": 1.00
},
"expirationDateTime": "2021-03-02T08:44:07+03:00"
}
payload = json.dumps(payload)
response = requests.put(f"https://api.qiwi.com/partner/bill/v1/bills/{billid}", params=payload, headers=headers)
Ошибка:
{'serviceName': 'invoicing-api', 'errorCode': 'http.message.conversion.failed', 'description': 'Bad request', 'userMessage': 'Bad request', 'dateTime': '2020-10-28T17:08:23.231+03:00', 'traceId': 'f6df17b348a715a5'}
Ответы (2 шт):
У меня сработало так:
billid = 'cc961e8dd4d64f02b7372297e51fb48e'
headers = {
'accept': 'application/json',
'Authorization': 'Bearer ' + QIWI_SECRET_KEY,
'content-type': 'application/json'
}
params = {
'amount': {
'currency': 'RUB',
'value': '1.00'
},
'expirationDateTime': '2021-03-28T08:44:07+03:00'
}
url = f'https://api.qiwi.com/partner/bill/v1/bills/{billid}'
resp = requests.put(url, json=params, headers=headers)
print(resp.text)
Вывод:
{"siteId":"hiix77-00","billId":"cc961e8dd4d64f02b7372297e51fb48e","amount":{"currency":"RUB","value":"1.00"},"status":{"value":"WAITING","changedDateTime":"2021-03-25T10:03:21.921+03:00"},"creationDateTime":"2021-03-25T10:03:21.921+03:00","expirationDateTime":"2021-03-28T08:44:07+03:00","payUrl":"https://oplata.qiwi.com/form/?invoice_uid=730019c5-5124-4de0-a563-9c063405f62c"}
billId - сгенерированный на вашей стороне любым способом идентификатор счета. Идентификатором может быть любая уникальная последовательность букв или цифр. Также разрешено использование символа подчеркивания (_) и дефиса (-).