Протокол для работы с кредитными картами CyberCash

Компонент Status


Компонент Status содержит информацию состояния бизнес-процесса (успех или неудача) (смотри раздел 4.2). Его определение приведено ниже.

<!ELEMENT Status EMPTY >

<!ATTLIST Status ID ID #REQUIREDxml:lang NMTOKEN #REQUIRED
StatusType NMTOKEN #REQUIREDElRef NMTOKEN #IMPLIED

ProcessState (NotYetStarted | InProgress | CompletedOk | Failed | ProcessError) #REQUIRED
CompletionCode NMTOKEN #IMPLIED
ProcessReference CDATA #IMPLIEDStatusDesc CDATA #IMPLIED >

Атрибуты:

IDИдентификатор, который однозначно определяет компонент Status транзакции IOTP.
xml:langОпределяет язык, используемый атрибутами в пределах компонента. Смотри раздел 3.8.
StatusTypeИндицирует тип обмена документами, о котором сообщает компонент Status. Он может быть установлен в состояние предложение, платеж, доставка, аутентификация или “неопределено” (Undefined).

“Непределено” означает, что тип документального обмена не может быть идентифицирован. Это может быть вызвано ошибкой исходного входного обмена сообщениями. Значения StatusType управляется процедурой, описанной в секции 12 (IANA), и допускающей определение новых значений пользователем.

ElRef

Если StatusType не установлено равным Undefined (неопределено), тогда ElRef содержит ссылку элемента (смотри раздел 3.5) на компонент, для которого описан Status. Он может относиться к:

о   компоненту Order (смотри раздел 7.5), если StatusType = Offer,
o   компоненту Payment (смотри раздел 7.9), если StatusType = Payment,
o   компоненту Delivery (смотри раздел 7.13), если StatusType = Delivery;
o   компоненту запрос аутентификации (смотри раздел 7.2), если StatusType = Authentication.

ProcessState

Содержит код состояния (State Code), который индицирует текущее состояние исполняемого процесса. Допустимыми значениями ProcessState являются:

о   NotYetStarted. Получен блок Request, но процесс еще не начат;
o   InProgress. Обработка блока Request начата, но еще не завершена;
o   CompletedOk. Обработка блока Request успешно завершена;
o   Failed. Обработка блока Request не прошла из-за рабочей ошибки (Business Error) (смотри раздел 4.2)
o   ProcessError. Это значение применяется, только когда компонент Status используется в связис торговым блоком информационного запроса (смотри раздел 8.12). Оно указывает, что была техническая ошибка (смотри раздел 4.1) в блоке запроса, который обрабатывается, тди другая внутренняя ошибка обработки.


Заметим, что этот код сообщает об обработке блока запроса. Далее, после посылки блока отклика, сопряженного с процессом, может осуществляться асинхронная обработка.
CompletionCodeИндицирует то, как завершился процесс. Корректные значения CompletionCode приведены ниже вместе с указанием условий, когда атрибут должен присутствовать и указанием возможности восстановления при неудаче.
CompletionCode может иметь до 14 символов.
ProcessReferenceЭтот опционный атрибут хранит ссылку для процесса, о состоянии которого сообщается. Он может содержать следующие значения:о   когда StatusType = Offer, он должен содержать OrderIdentifier компонента Order;o   когда StatusType = Payment, он должен содержать PaymentHandlerPayId компонентаданных о схеме платежа;o   когда StatusType = Delivery, он должен содержать DelivHandlerDelivId компонента Delivery Note;o   когда StatusType = Authentication, он должен содержать AuthenticationId компонента запроса аутентификации.
Этот атрибут должен отсутствовать в сообщении информационного запроса, когда Покупателю сервис-провайдером IOTP не был дан код ссылки. Этот атрибут может быть использован внутри блока информационного отклика (смотри раздел 8.13), для того чтобы предоставить код ссылки для транзакции, которя ранее была недоступна. Например, код упаковки может быть не присвоен в момент получения отклика доставки. Однако, если покупатель поздее выдаст запрос состояния транзакции, Агент доставки может проставить код упаковки в атрибут сообщения информационного отклика и послать его Покупателю.
StatusDescОпционное текстовое описание текущего состояния процесса на языке, заданном атрибутом xml:lang.


Содержание раздела