Я не уверен, но вроде как при помощи этой библиотеки нельзя генерировать ссылки для оплаты, но у киви есть подробное и понятное API, которое можно легко использовать. Отправляешь запрос с нужными данными (сумма платежа, а так же данные о том, кто оплачивает счёт), он возвращает тебе ссылку для оплаты, которую уже скидываешь пользователю. После успешной оплаты киви отправляет запрос к тебе на сервер, со всей нужной информацией. Примеры отправляемых заголовков и параметров, которые нужно отправлять киви:
headers = {
'accept': 'application/json',
'Authorization': 'Bearer ' + get_from_env('SECRET_QIWI_TOKEN'),
'content-type': 'application/json',
'Referrer-Policy': 'no-referrer-when-downgrade'
}
params = {
'amount': {'value': amount, 'currency': 'RUB'},
'comment': db.get_user(user_id)['nickname'],
'expirationDateTime': date.isoformat(),
'customer': {'account': str(user_id)}
}
Запрос отправляется на специальную ссылку, со случайным сгенерированным ID, а потом вытягиваешь из ответа ссылку на оплату:
buildID = os.urandom(16).hex()
url = f'https://api.qiwi.com/partner/bill/v1/bills/{buildID}'
resp = requests.put(url, json=params, headers=headers)
resp.json()['payUrl']
Подробнее, что за поля указаны в параметрах в документации. Я делал таким образом, всё хорошо работало.