Перейти к содержанию

Order Status

Получение обычного и расширенного статуса заказа. Методы возвращают исходный словарь ответа API. Методы принадлежат SberbankClient.

Client for the legacy SberBank payment API maintained by YooKassa.

username - username at sberbank api password - password at sberbank api url - api url address api_type - api type (soap | rest) only rest ready language - default language (ISO 639-1) currency - default currency (ISO 4217)

@TODO: * remove url parameter in favor of a boolean production parameter * move ensure_ascii parameter to _make_data method parameter and pass it from class methods

Source code in gocream_pysberbank/http.py
def __init__(
    self,
    username=None,
    password=None,
    token=None,
    url=DEFAULT_URL,
    api_type=DEFAULT_API_TYPE,
    language=DEFAULT_LANGUAGE,
    currency=DEFAULT_CURREBCY,
    ensure_ascii=True,
):
    """
    username - username at sberbank api
    password - password at sberbank api
    url - api url address
    api_type - api type (soap | rest) only rest ready
    language - default language (ISO 639-1)
    currency - default currency (ISO 4217)

    @TODO:
     * remove `url` parameter in favor of a boolean `production` parameter
     * move `ensure_ascii` parameter to `_make_data` method parameter and pass it from class methods
    """

    if (not (bool(username) and bool(password))) == (token is None):
        raise SberbankException("Auth params require. Setup username/password pair or token, not both")

    self.username = username
    self.password = password
    self.token = token

    self.url = url
    self.api_type = api_type
    self.language = language
    self.currency = currency

    self.ensure_ascii = ensure_ascii

order_status

order_status(
    orderId,
    language=None,
    url=None,
    api_type=None,
    **kwargs,
)

Order status

Request doc_

Attributes orderId: Номер заказа в платёжном шлюзе. Уникален в пределах шлюза. language: Не указан в документации, но вероятно по аналогии с остальными методами он всё же там должен быть... Вероятно... Нужно поправить если ругаться будет

.. _Request doc: https://securepayments.sberbank.ru/wiki/doku.php/integration:api:rest:requests:getorderstatus

Source code in gocream_pysberbank/http.py
def order_status(self, orderId, language=None, url=None, api_type=None, **kwargs):
    """
    Order status

    `Request doc`_

    Attributes
        orderId: Номер заказа в платёжном шлюзе. Уникален в пределах шлюза.
        language: Не указан в документации, но вероятно по аналогии с
            остальными методами он всё же там должен быть... Вероятно...
            Нужно поправить если ругаться будет

    .. _Request doc:
       https://securepayments.sberbank.ru/wiki/doku.php/integration:api:rest:requests:getorderstatus
    """

    params = {
        "orderId": orderId,
        "language": language or self.language,
    }
    result = self._make_request(url or self.url, api_type or self.api_type, "getOrderStatus", params, **kwargs)
    return result

order_status_extended

order_status_extended(
    orderId=None,
    orderNumber=None,
    anguage=None,
    url=None,
    api_type=None,
    language=None,
    **kwargs,
)

Order status extended

В запросе должен присутствовать либо orderId, либо orderNumber. Если в запросе присутствуют оба параметра, то приоритетным считается orderId.

Request doc_

Attributes orderId: Номер заказа в платёжном шлюзе. Уникален в пределах шлюза. orderNumber: Номер (идентификатор) заказа в системе магазина, уникален для каждого магазина в пределах системы - до 30 символов. language: Не указан в документации, но вероятно по аналогии с остальными методами он всё же там должен быть... Вероятно... Нужно поправить если ругаться будет

.. _Request doc: https://securepayments.sberbank.ru/wiki/doku.php/integration:api:rest:requests:getorderstatusextended

Source code in gocream_pysberbank/http.py
def order_status_extended(
    self,
    orderId=None,
    orderNumber=None,
    anguage=None,
    url=None,
    api_type=None,
    language=None,
    **kwargs,
):
    """
    Order status extended

    В запросе должен присутствовать либо _orderId_, либо _orderNumber_.
    Если в запросе присутствуют оба параметра, то приоритетным считается
    _orderId_.

    `Request doc`_

    Attributes
        orderId: Номер заказа в платёжном шлюзе. Уникален в пределах шлюза.
        orderNumber: Номер (идентификатор) заказа в системе магазина,
        уникален для каждого магазина в пределах системы - до 30 символов.
        language: Не указан в документации, но вероятно по аналогии с
            остальными методами он всё же там должен быть... Вероятно...
            Нужно поправить если ругаться будет

    .. _Request doc:
       https://securepayments.sberbank.ru/wiki/doku.php/integration:api:rest:requests:getorderstatusextended
    """

    if (orderId is None) and (orderNumber is None):
        raise SberbankException("none of the orderId and orderNumber parameters is specified")

    params = {
        "orderId": orderId,
        "orderNumber": orderNumber,
        "language": language or self.language,
    }
    result = self._make_request(
        url or self.url, api_type or self.api_type, "getOrderStatusExtended", params, **kwargs
    )
    return result