aiogram.api.methods.answer_pre_checkout_query

aiogram/api/methods/answer_pre_checkout_query.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from __future__ import annotations

from typing import TYPE_CHECKING, Any, Dict, Optional

from .base import Request, TelegramMethod

if TYPE_CHECKING:  # pragma: no cover
    from ..client.bot import Bot


class AnswerPreCheckoutQuery(TelegramMethod[bool]):
    """
    Once the user has confirmed their payment and shipping details, the Bot API sends the final
    confirmation in the form of an Update with the field pre_checkout_query. Use this method to
    respond to such pre-checkout queries. On success, True is returned. Note: The Bot API must
    receive an answer within 10 seconds after the pre-checkout query was sent.

    Source: https://core.telegram.org/bots/api#answerprecheckoutquery
    """

    __returning__ = bool

    pre_checkout_query_id: str
    """Unique identifier for the query to be answered"""
    ok: bool
    """Specify True if everything is alright (goods are available, etc.) and the bot is ready to
    proceed with the order. Use False if there are any problems."""
    error_message: Optional[str] = None
    """Required if ok is False. Error message in human readable form that explains the reason for
    failure to proceed with the checkout (e.g. "Sorry, somebody just bought the last of our
    amazing black T-shirts while you were busy filling out your payment details. Please choose
    a different color or garment!"). Telegram will display this message to the user."""

    def build_request(self, bot: Bot) -> Request:
        data: Dict[str, Any] = self.dict()

        return Request(method="answerPreCheckoutQuery", data=data)