Skip to content
Permalink
master
Switch branches/tags
Go to file
 
 
Cannot retrieve contributors at this time

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

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

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

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

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

Между двумя последовательными запросами проверки статуса одного и того же платежа следует соблюдать интервал не менее 10 минут.

Формат запроса {#status-req}

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

<?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 Группирующий тег, содержит информацию о платеже
to/account-number Идентификатор Клиента в системе QIWI Wallet (номер телефона Клиента системы QIWI Wallet в международном формате)

Формат ответа {#status-res}

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

Формат ответа зависит от того, как сервер обработал запрос:

При возврате ответов с ошибками запроса или с нефинальными статусами платежей вы должны сделать повторный запрос проверки статуса платежа.

Если вы не уверены в корректной расшифровке ответа API, обратитесь в Службу поддержки: bss@qiwi.com.

Ответ без ошибок обработки запроса {#res_status}

Если запрос обработан корректно, то в ответе возвращаются сведения о статусе платежа в теге <payment>.

<?xml version="1.0" encoding="utf-8"?>
<response>
  <result-code fatal="false">0</result-code>
  <payment status='60' transaction-number='12345678' txn_id='759640439' result-сode='0' message='' msg='' 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 Группирующий тег ответа. Отсутствуют.
result-code Код ошибки обработки запроса. fatal – логический признак фатальности ошибки обработки запроса.
payment Описание платежа, статус которого запрошен. В случае запроса статуса по нескольким платежам в ответе содержится соответствующее количество тегов payment. В случае, если запрашиваемый платеж не найден в системе QIWI Wallet, соответствующий тег payment будет отсутствовать в ответе. statusстатус платежа в системе QIWI Wallet;
txn_id – идентификатор транзакции в системе QIWI Wallet;
transaction-number – номер транзакции в информационной системе Контрагента;
result-codeкод ошибки обработки платежа;
message, msg - текстовое описание ошибки;
final-status – логический признак финального статуса платежа;
fatal-error - логический признак фатальности ошибки обработки платежа (фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки);
txn-date – дата приема платежа в систему QIWI Wallet.
balances Группирующий тег, содержит информацию о балансе всех активных счетов Контрагента в системе QIWI Wallet. Отсутствуют.
balances/balance Текущий баланс единичного счета Контрагента в системе QIWI Wallet. code - цифровой код валюты счета (в формате ISO 4217).

Ответ с ошибками обработки запроса {#res_tech_status}

Если сервер не смог обработать запрос на получение статуса платежа, API возвращает ответ с кодом произошедшей ошибки. В этом случае информация о статусе транзакции отсутствует в ответе, поэтому вы должны продолжать запросы статуса, не отклоняя платеж на своей стороне.

<?xml version="1.0" encoding="utf-8"?>
<response>
  <result-code fatal="false" message="Неизвестная ошибка" msg="Неизвестная ошибка">300</result-code>
</response>

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

Тег Описание Атрибуты
result-code Код ошибки обработки запроса fatal – логический признак фатальности ошибки обработки запроса. Фатальность ошибки означает, что повторный запрос с теми же параметрами приведет к повторению той же ошибки. Фатальные ошибки обработки запроса, как правило, вызваны ошибками конфигурирования и требуют ручного вмешательства. При появлении таких ошибок вы можете либо не приостанавливать выполнение повторных запросов, либо приостановить до устранения ошибок конфигурирования;
message, msg - текстовое описание ошибки.