· 4 years ago · Apr 28, 2021, 12:02 PM
1import requests
2import uuid
3import json
4import datetime
5import time
6
7SECRET_KEY = "YOUR SECRET KEY"
8
9def create_invoice():
10 response = requests.put(f"https://api.qiwi.com/partner/bill/v1/bills/{uuid.uuid4()}",
11 headers={
12 "Authorization": f"Bearer {SECRET_KEY}",
13 "Content-Type": "application/json",
14 "Accept": "application/json"
15 },
16 data=json.dumps({
17 "amount": {
18 "value": "1.00", #Денежная сумма
19 "currency": "RUB", #Валюта (только рубли или тенге)
20 },
21 "comment": "Оплата за тест", #Коммент
22 "expirationDateTime": str((datetime.datetime.now() + datetime.timedelta(hours=1)).strftime(f'%Y-%m-%dT%H:%M:%S+00:00')),
23 "customer": {
24 "account": "Test account" # что-то идентифицируешее вашего пользователя, к примеру tgID
25 }
26 })
27 )
28 return json.loads(response.text)
29
30def get_info_invoice(ids):
31 response = requests.get(f"https://api.qiwi.com/partner/bill/v1/bills/{ids}",
32 headers={
33 "Authorization": f"Bearer {SECRET_KEY}",
34 "Content-Type": "application/json",
35 "Accept": "application/json"
36 }
37 )
38 return json.loads(response.text)
39
40invoice = create_invoice()
41print(invoice["payUrl"])
42
43while True:
44 info = get_info_invoice(invoice["billId"])
45 if info["status"]["value"] == "PAID":
46 print("Счёт оплачен!")
47 break
48 print("Статус счёта: " + info["status"]["value"])
49 time.sleep(5)
50
51