Задать вопрос
  • Оплата с киви telebot?

    @St3DiTwister
    Я не уверен, но вроде как при помощи этой библиотеки нельзя генерировать ссылки для оплаты, но у киви есть подробное и понятное 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']

    Подробнее, что за поля указаны в параметрах в документации. Я делал таким образом, всё хорошо работало.
    Ответ написан
    Комментировать
  • Как вывести значение переменной в vk_api на pythone?

    @St3DiTwister
    Текст сообщения берётся из параметра "message", соответственно отправится только то, что присвоено этому параметру. Поэтому "привет" и str(test3) нужно объединить в одну переменную и присвоить параметру "message". А параметр "test3" не нужен, да и вообще не определен в методе.
    Ответ написан
    Комментировать