Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
97 lines (74 sloc) 8.51 KB

Проверка статуса платежа {#status}

Последнее обновление: 2017-11-14 | Редактировать на GitHub

Для проверки успешного прохождения платежа, Контрагент должен периодически выполнять запрос проверки статуса до получения успешного или неуспешного финального статуса.

С момента регистрации платеж проходит стадии, изменяющие его статус. Каждый статус определяется уникальным числовым идентификатором. Проведение платежа считается завершенным, когда он достигает финального статуса. Значения статусов платежа приведены здесь.

Запрос позволяет получить текущий статус платежа. Повторный запрос для одних и тех же платежей следует отправлять не ранее, чем через 10 минут.

При появлении нефатальных ошибок запроса или нефинальных статусов платежей Контрагент должен делать повторный запрос проверки статуса платежа на сервер QIWI Wallet.

Фатальность ошибки обработки запроса означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки.

Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства. При появлении фатальных ошибок обработки запроса, Контрагент может не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования. Поскольку при ошибках обработки запроса статус транзакции неизвестен, Контрагент не должен отклонять платеж на своей стороне.

При возникновении сетевых ошибок (например, таймауты при соединении или чтении ответа), HTTP-ошибок (HTTP-статус не равен 200, пустой ответ), некорректных XML-документов (например, c отсутствующими тегами и/или атрибутами) Контрагент должен сделать повторный запрос. При возникновении данных ошибок информация о статусе транзакции не доступна, поэтому Контрагент не должен отклонять платеж на своей стороне.

Формат запроса

<?xml version="1.0" encoding="utf-8"?>
  <request>
    <request-type>pay</request-type>
    <extra name="password">XXXXXX</extra>
    <terminal-id>123</terminal-id>
    <status>
      <payment>
        <transaction-number>12345678</transaction-number>
        <to>
             <account-number>79181234567</account-number>
        </to>
      </payment>
    </status>
  </request>

Параметры запроса

Тег Описание
request Группирующий тег. Дочерние теги содержат параметры платежа.
request-type Тип запроса (равен идентификатору запроса пополнения QIWI Кошелька: pay)
terminal-id Идентификатор агента в системе QIWI Wallet
extra name="password" Экстра-поле, содержащее пароль для аутентификации в системе QIWI Wallet
status Группирующий тег, содержит список платежей, по которым необходимо получить текущий статус. Данный тег заключает в своём теле один или более тегов payment
payment Группирующий тег, содержит данные единичного платежа, статус которого запрашивается.
transaction-number Номер транзакции в информационной системе Контрагента. Данный номер указывается при создании платежа. В сочетании с идентификатором Контрагента номер транзакции однозначно идентифицирует платеж в системе QIWI Wallet. Значение остается неизменным в течение всего срока существования платежа.
to Группирующий тег, содержит информацию о платеже
account-number Идентификатор Клиента в системе QIWI Wallet (номер телефона Клиента системы QIWI Wallet в международном формате)

Формат ответа

Ответ без ошибок обработки запроса

<response>
  <result-code fatal="false">0</result-code>
  <payment status='60' transaction-number='12345678' txn_id='759640439' result-сode='0' final-status='true'  fatal-error='false' txn-date='12.03.2012 14:24:38'  />
  <balances>
    <balance code="643">90.79</balance>
    <balance code="840">0.00</balance>
  </balances>
</response>

Параметры ответа:

Тег Описание Атрибуты
response Группирующий тег ответа. Отсутствуют.
payment Описание платежа, статус которого запрошен. В случае запроса статуса по нескольким платежам в ответе содержится соответствующее количество тегов payment. В случае, если запрашиваемый платеж не найден в системе QIWI Wallet, соответствующий тег payment будет отсутствовать в ответе. statusстатус платежа в системе QIWI Wallet;
txn_id – идентификатор транзакции в системе QIWI Wallet;
transaction-number – номер транзакции в информационной системе Контрагента;
result-codeкод ошибки обработки платежа;
final-status – флаг, определяющий финальность статуса платежа;
fatal-error - флаг, определяющий фатальность ошибки обработки платежа;
txn-date – дата приема платежа в систему QIWI Wallet;
balances Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. Отсутствуют.
balance Текущий баланс единичного счета Контрагента в системе QIWI Wallet. code - цифровой код валюты счета (в формате ISO 4217).

Ответ с ошибками обработки запроса

Если сервер не смог обработать запрос на получение статуса платежа, он возвращает xml-ответ с описанием произошедшей ошибки.

<response>
  <result-code fatal="false">300</result-code>
</response>

Параметры ответа:

Тег Описание Атрибуты
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса.