Проверка ошибок в последовательности блоков
Далее при объяснении поиска ошибок в последовательностях блоков выражение типа "относится к транзакции IOTP" следует интерпретировать как "содержится в сообщении IOTP, где TransRef Block включает в себя IotpTransId, который указывает на данную танзакцию". Так, например, "Если ошибка или аннулированный блок относится к транзакции IOTP, которая не распознана, тогда..." следует интерпретировать как "Если ошибка или аннулированный блок содержатся в сообщении IOTP, TransRefBlock включает в себя IotpTransId, который относится к транзакции IOTP, которая не распознана, тогда...”.
Ошибки в последовательности прихода блоков зависят от блока. Блоки, где требуется проверка последовательности:
Error и Cancel блоки. Если Error или Cancel блок относится к транзакции IOTP, которая не распознана, тогда это серьезная (Hard) ошибка. Чтобы избежать зацикливания, не следует посылать оповещения об ошибке, если получен Error или Cancel блок транзакции IOTP.
Блоки отклика и информационного запроса. Если блоки отклика и информационного запроса относятся к транзакции IOTP, которая не распознана, это серьезная (Hard) ошибка.
Блок запроса аутентификации. Если блок запроса аутентификации относятся к транзакции IOTP, которая распознана, это серьезная (Hard) ошибка.
Блок отклика аутентификации проверяется следующим образом:
- Если блок отклика аутентификации не относится к транзакции IOTP, которая распознана, то это серьезная (Hard) ошибка, в противном случае. | ||
- Если блок отклика аутентификации не относится к аутентификационному запросу, который был ранее послан, то это серьезная (Hard) ошибка, в противном случае. | ||
- Если блок отклика аутентификации получен в рамках IOTP-транзакции, до того как аутентификация успешно завершилась, то это серьезная (Hard) ошибка. | ||
о | Блок состояния аутентификации проверяется следующим образом: | |
- если блок состояния аутентификации не относится к транзакции IOTP, которая распознана, то это серьезная (Hard) ошибка, в противном случае, | ||
- если блок состояния аутентификации не относится к аутентификационному отклику, который был перед эти послан, тогда это серьезная (Hard) ошибка, в противном случае, | ||
- если блок состояния аутентификации получен для той же самой транзакции раньне, то это предупреждение (а не ошибка). | ||
o | Блок выбора TPO (только для продавца) прооверяется следующим образом: | |
- если блок выбора TPO не относится к транзакции IOTP, которая распознана, то это серьезная (Hard) ошибка, в противном случае, | ||
- если блок выбора TPO не относится к транзакции IOTP, где блок TPO и отклик предложения (в одном сообщении) были посланы ранее, то это серьезная (Hard) ошибка, в противном случае, | ||
- если блок выбора TPO относится к транзакции IOTP, где только блок TPO (т.e. без отклика на предложение) был послан ранее, то это серьезная (Hard) ошибка, в противном случае, | ||
- если блок выбора TPO для того же блока TPO получен ранее, то это серьезная (Hard) ошибка. | ||
o | Блок запроса платежа (только для кассира) проверяется следующим способом: | |
- если блок запроса платежа относится к транзакции IOTP, которая не распознана, тогда все в порядке, в противном случае | ||
- если блок запроса платежа относится к транзакции IOTP, которая не связана с платежом, то это серьезная (Hard) ошибка, в противном случае | ||
- если был предшествующий платеж, который не прошел с кодом завершения недопускющим восстановление, то это серьезная (Hard) ошибка, в противном случае | ||
- если предыдущий платеж еще в работе, то это серьезная (Hard) ошибка. | ||
o | Блок платежного обмена (только для кассира) проверяется следжующим образом: | |
- если блок платежного обмена не относится к транзакции IOTP, которая распознана, то это серьезная (Hard) ошибка, в противном случае | ||
- если платежный обмен не относится к транзакции IOTP, где такой обмен уже был, то это серьезная ошибка (Hard). | ||
o | Запрос доставки (только для агентов доставки). Если блок запроса доставки относится к транзакции IOTP, которая распознана сервероим, то это серьезная ошибка. |