Отношения элементов списка видов платежа
Рисунок .15. Отношения элементов списка видов платежа
Примеры списков видов платежа содержатся в главе 11.2.
7.7.1. Элемент Brand
Элемент Brand описывает вид платежа, который может быть использован при оплате покупки. Один или более таких элементов образуют компонент списка видов платежа, который имеет атрибут PayDirection, установленный равным Debit. Только один элемент вида платежа может содержаться в компоненте списка видов платежа (Brand List), который имеет атрибут PayDirection = Credit.
<!ELEMENT Brand (ProtocolBrand*, PackagedContent*) >
ContentSoftwareId CDATA #IMPLIED>
Атрибуты:
ID | Идентификатор элемента, относящийся потенциально к компоненту выбора вида платежа (Brand Selection), содержащегося в последнем сообщении платежного запроса, и однозначно идентифицирующий элемент Brand данной транзакции. |
xml:lang | Определяет язык, используемый атрибутами и содержимым данного элемента. Смотри раздел 3.8. |
BrandId | Содержит уникальный идентификатор для вида платежа. Он используется для установления соответствия со списком платежных инструментов, которыми располагает Покупатель, чтобы определить, может ли он обеспечить платеж данного вида. |
Так как значения BrandId управляются процедурами IANA, допускается определение значений самим пользователем.
BrandName | Содержит название вида платежа, например MasterCard. Это описание вида платежа, которое отображается для Покупателя на понятном для него языке, заданном атрибутом xml:lang. Например, это может быть "American Airlines Advantage Visa". Заметим, что этот атрибут не используется для установления соответствия с инструментами платежа, которыми располагает Покупатель. |
BrandLogoNetLocn | Сетевая позиция, которая может быть использована для загрузки логотипа организации. Смотри раздел “Получение логотипа” (раздел 10). |
Содержимое этого атрибута должно соответствовать документу [RFC1738].
Cодержимое:
PackagedContent | Опционные элементы Packaged Content (смотри раздел 3.7), содержащие информацию о протоколе и/ или виде платежа, которые может использовать платежный протокол. Содержимое этой информации определяется в приложении для платежных протоколов. |
Элемент Protocol Amount связывает вид платежа с:
- видом валюты и суммами в элементах Currency Amount (смотри раздел 7.7.4), которые могут использоваться с данным видом платежа, и
- платежными протоколами и Кассирами, определенными в элементе платежного протокола (смотри раздел 7.7.5), котоый может быть использован для этого видв валюты и сумм платежа.
<!ELEMENT ProtocolAmount (PackagedContent*) >
<!ATTLIST ProtocolAmount ID ID #REQUIRED
PayProtocolRef IDREF #REQUIREDCurrencyAmountRefs IDREFS #REQUIRED
ContentSoftwareId CDATA #IMPLIED >
Атрибуты:
ID | идентификатор элемента, на который может ссылаться элемент Brand; или компонент выбора видов платежа, содержащийся в последующих сообщениях платежного запроса. Он однозначно идентифицирует элемент Protocol Amount для данной транзакции IOTP. |
PayProtocolRef | Содержит ссылку элемента (смотри раздел 3.5), которая указывает на элемент платежного протокола (смотри раздел 7.7.5), содержащийплатежный протокол и Кассира, которые могут использоваться для данного вида платежа. |
CurrencyAmountRefs | Содержит список ссылок элемента (смотри раздел 3.5), который указывает на элемент Currency Amount (смотри раздел 7.7.4), описывающий вид валюты и сумму, которые могут использоваться для данного вида платежа. |
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Опционные элементы Packaged Content (смотри раздел 3.7), содержащие информацию о протокольной сумме, которая может использоваться платежным протоколом. Содержимое этой информации определено в приложении для платежных протоколов. |
7.7.4. Элемент валютной суммы
Элемент валютной суммы содержит в себе:
- код валюты (и ее тип),
- сумму.
<!ELEMENT CurrencyAmount EMPTY >
<!ATTLIST CurrencyAmount ID ID #REQUIRED
>Amount CDATA #REQUIREDCurrCodeType NMTOKEN 'ISO4217-A'
CurrCode CDATA #REQUIRED >
Атрибуты:
ID | Идентификатор элемента, (Brand Selection), содержащиеся в последующих сообщениях платежного запроса. Он однозначно идентифицирует элемент Currency Amount данной транзакции IOTP. |
Amount | Указывает сумму, которая должна быть заплачена. Например $245.35 будет выражено как "245.35". Заметим, что значения меньше наименьшей целой величины вполне допустима. Например одна десятая цента будет записана как "0.001". |
CurrCodeType | Указывает CurrCode области. Этот атрибут включен с тем, чтобы была возможность поддержания нестандартных "валют" например “торговых марок” и т.д.. Атрибут может принимать значения: |
- ISO4217-A (по умолчанию) указывает код валюты с помощью трех буквенных символов, которые должны согласовываться с [ISO 4217]
- IOTP указывает, что значения CurrCode управляются процедурой, описанной в разделе 12.
CurrCode | Код, идентифицирующий валюту, которая должна использоваться при платеже. Область корректных кодов валюты определена атрибутом CurrCodeType. |
7.7.5. Элемент платежного протокола
Элемент платежного протокола специфицирует детали для платежного протокола и для Кассира, которые могут использоваться для жанного видв платежа. Один или более таких элементов содержится в каждом списке видов платежа.
<!ELEMENT PayProtocol (PackagedContent*) >
<!ATTLIST PayProtocol ID ID #REQUIRED
xml:lang NMTOKEN #IMPLIED | ProtocolId NMTOKEN #REQUIRED |
ProtocolName CDATA #REQUIRED | ActionOrgRef NMTOKEN #REQUIRED |
PayReqNetLocn CDATA #IMPLIED | SecPayReqNetLocn CDATA #IMPLIED |
Атрибуты:
ID | Идентификатор элемента, на который может ссылаться элемент Brand; или компонент выбора вида платежа (Brand Selection), содержащиеся в последующих сообщениях платежного запроса. Он однозначно идентифицирует элемент PayProtocol данной транзакции IOTP. |
xml:lang | Определяет язык, используемый атрибутами и содержимым данного элемента. Смотри раздел 3.8. |
ProtocolId | Состоит из имени протокола и версии, например "SETv1.0". |
ProtocolName | Описание платежного протокола и его версии на языке, идентифицированном атрибутом xml:lang. Например "Secure Electronic Transaction Version 1.0". Его целью является помочь, если требуется, в предоставлении информации об используемом платежном протоколе. |
ActionOrgRef | Ссылка элемента (смотри раздел 3.5) на компонент Organisation для Кассира при данном платежном протоколе. |
PayReqNetLocn | Сетевая позиция, указывающая куда следует послать платежный запрос в отсутствии гарантии безопасности при заданном протоколе. |
SecPayReqNetLocn | Сетевая позиция, указывающая куда следует послать платежный запрос в условиях гарантии безопасности при заданном протоколе. Безопасный платеж предполагает для коммуникации с кассиром использование безопасного канала, такого как [SSL/TLS]. |
ContentSoftwareIdСмотри раздел 14. Словарь.
Cодержимое:
PackagedContent | Опционные элементы Packaged Content (смотри раздел 3.7), содержащие информацию о протоколе, который используется платежным протоколом. Содержание этой информации определяется в приложении для платежных ппротоколов. |
7.8. Компонент выбора вида платежа
Компонент выбора вида платежа идентифицирует выбор вида платежа, платежный протокол и кассира. Этот элемент используется:
- в сообщениях платежных запросов в транзакциях покупки и обмена ценностями для идентификации вида платежа, протокола и кассира;
- чтобы опционно проинформировать продавца об используемом виде платежа с целью возможной последующей коррекции предложения и заказа.
Определение компонента выбора вида платежа представлено ниже.
<!ELEMENT BrandSelection (BrandSelBrandInfo?, BrandSelProtocolAmountInfo?,
BrandSelCurrencyAmountInfo?) >
<!ATTLIST BrandSelection ID ID #REQUIRED
BrandListRef NMTOKEN #REQUIRED | BrandRef NMTOKEN #REQUIRED |
CurrencyAmountRef NMTOKEN #REQUIRED >
Атрибуты:
ID | Идентификатор, который однозначно определяет компонент выбора вида платежа транзакции. |
BrandListRef | Ссылка элемента (смотри раздел 3.5) компонента списка видов платежа, из которого был выбран Brand. |
BrandRef | Ссылка элемента Brand компонента списка видов платежа, который был выбран из списка и использован для платежа. |
ProtocolAmountRef | Ссылка элемента для Protocol Amount в пределах компонента списка видов платежа, который использован при платеже. |
CurrencyAmountRef | Ссылка элемента для Currency Amount в пределах компонента списка видов платежа, который использован при платеже. |
BrandSelBrandInfo, BrandSelProtocolAmountInfo, Содержит любые дополнительные данные, которые могут быть необходимы при конкретном платеже или протоколе. Смотри разделы 7.8.1, 7.8.2, и 7.8.3. |
- атрибут BrandListRef должен содержать идентификатор компонента списка видов платежа транзакции IOTP;
- на каждый компонент списка видов платежа в блоке опций торгового протокола (смотри раздел 8.1) должен ссылаться один и только один компонент выбора вида платежа.
- BrandRef должен относиться к ID Brand, содержащегося в компоненте списка видов платежа, на который ссылается BrandListRef
- ProtocolAmountRef должен относиться к одному ID элемента, содержащемуся в атрибуте ProtocolAmountRefs элемента Brand, идентифицированного BrandRef
- CurrencyAmountRef должен относиться к одному ID элемента содержащемуся в атрибуте ProtocolAmountRefs элемента Protocol Amount, идентифицированного ProtocolAmountRef.
7.8.1. Информационный элемент выбора вида платежа
Информационный элемент выбора вида платежа cсодержит любую дополнительную информацию, которая может быть необходима для какого-то конкретного вида платежа. Смотри приложение IOTP для платежных методов, где описано применние этого элемента.
<!ELEMENT BrandSelBrandInfo (PackagedContent+) >
<!ATTLIST BrandSelBrandInfo ID ID #REQUIRED ContentSoftwareId CDATA #IMPLIED >
Атрибуты:
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Элементы Packaged Content (смотри раздел 3.7), содержащие дополнительные данные, которые могут быть необходимы для конкретного вида платежа. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента. |
Элемент Amount Info протокола выбора вида платежа содержит любую дополнительную информацию, зависящую от платежного протокола, которая может быть необходима для конкретного вида платежа или плптежного протокола. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента.
<!ELEMENT BrandSelProtocolAmountInfo (PackagedContent+)>
<!ATTLIST BrandSelProtocolAmountInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED>
Атрибуты:
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Элементы Packaged Content (смотри раздел 3.7), которые могут содержать дополнительную информацию, необходимую для конкретного вида платежа. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента. |
Информационный элемент валютной суммы выбора вида платежа содержит любую дополнительную информацию, зависящую от вида платежа и валюты, которая может быть необходима при конкретном виде платежа. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента.
<!ELEMENT BrandSelCurrencyAmountInfo (PackagedContent+)>
<!ATTLIST BrandSelCurrencyAmountInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED>
Атрибуты:
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Элементы Packaged Content (смотри раздел 3.7), которые содержат дополнительную информацию, относящуюся к виду платежа и валюты. Смотри приложение IOTP по платежным методам, где описано использование этого элемента. |
Компонент платежа содержит информацию, используемую для управления процедурой выполнения платежа. Он предоставляет информацию о:
- Временном интервале в пределах которого Кассир может начать платежную операцию;
- Ссылку на список видов платежа (смотри раздел 7.7), который идентифицирует виды платежа, протоколы, виды валюты и суммы, которые могут использоваться при осуществлении платежа.
- следует ли предоставлять платежную расписку;
- должен ли данному платежу предшествовать другой платеж.
<!ELEMENT Payment EMPTY > <!ATTLIST Payment ID ID #REQUIRED
OkFrom CDATA #REQUIRED | OkTo CDATA #REQUIRED |
BrandListRef NMTOKEN #REQUIRED | SignedPayReceipt (True | False) #REQUIRED |
Атрибуты:
ID | Идентификатор, который однозначно идентифицирует платежный компонент в транзакции IOTP. |
OkFrom | Дата и время в формате [UTC], после которого кассир может воспринимать на обработку блок платежного запроса (смотри раздел 8.7), содержащий компонент платежа. |
OkTo | Дата и время в формате [UTC], до которого Кассир может воспринимать на обработку блок платежного запроса, содержащий компонент платежа. |
BrandListRef | Ссылка элемента (смотри раздел 3.5) компонента списка видов платежа (смотри раздел 7.7) в рамках торгового блока TPO транзакции IOTP. Список видов платежа идентифицирует альтернативные способы осуществления платежа. |
SignedPayReceipt | Указывает, должен ли быть подписан блок платежного отклика (смотри раздел 8.9), сгенерированный Кассиром. |
StartAfter | Содержит ссылки элемента (смотри раздел 3.5) других платежных компонентов, которые описывают платежи, которые должны быть проведены до того, как будет произведен данный платеж. Если атрибут StartAfter отсутствует, тогда никаких зависимостей нет и платеж может быть проведен немедленно. |
7.10. Компонент платежной схемы
Компонент платежной схемы содержит информацию платежного протокола для специфической платежной схемы, реализуемой между партнерами, вовлеченными в платеж, например [SET]-сообщение. Определение компонента представлено ниже.
<!ELEMENT PaySchemeData (PackagedContent+) >
<!ATTLIST PaySchemeData ID ID #REQUIRED
PaymentRef NMTOKEN #IMPLIED | ConsumerPaymentId CDATA #IMPLIED |
PaymentHandlerPayId CDATA #IMPLIED | ContentSoftwareId CDATA #IMPLIED> |
ID | Идентификатор, который однозначно определяет компонент схемы оплаты транзакции IOTP. |
PaymentRef | Ссылка элемента (смотри раздел 3.5) компонента платежа (смотри раздел 7.9), с которым связан компонент схемы платежа. Атрибут необходим, если только компонент схемы платежа не является частью запроса состояния транзакции (смотри раздел 9.2.1). |
ConsumerPaymentId | Идентификатор, специфицированный Покупателем, который в случае возвращения Кассиром в другом компоненте схемы платежа (или другим способом) позволит Покупателю определить, о каком платеже идет речь. |
PaymentHandlerPayId | Идентификатор, специфицированный Кассиром, который в случае возвращения Покупателем в другом компоненте схемы платежа (или другим способом) позволит Кассиру определить, о каком платеже идет речь. Атрибут необходим для каждого компонента схемы платежа, вне зависимости от того, что содержится в блоке платежного запроса. |
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Содержит протокольную информацию о схеме платежа в виде элементов Packaged Content (смотри раздел 3.7). Определение содержимого смотри в приложение по схемам платежа. |
- значения атрибута Name каждого элемента pakaged content определены в приложении для платежных протоколов;
- значение каждого Name должно быть уникальным для платежа, где платеж определяется как совокупность всех платежных схем или компонентов платежных расписок с идентияным значением атрибута PaymentRef.
Компонент платежной расписки
Плптежная расписка представляет собой запись о платеже, которая показывает, какая сумма заплачена или получена. Она отдичается от расписки о покупке, тем что здесь нет записи о том, что куплено. Обычно в компоенте платежной расписки содержатся данные, которые описывают:
- сумму платежа и его валюту;
- дату и время платежа;
- внутренние числовые ссылки, которые идентифицируют платеж для платежной системы;
- цифровые подписи, выработанные платежным механизмом и призванные позднее подтвердить, что платеж состоялся.
Точное определение содержимого платежной расписки зависит от метода платежа. Информация, содержащаяся в компоненте платежной расписки, должна отображаться или каким-либо другим способом доводиться до сведения Покупателя.
Если компонент платежной расписки содержит сообщения платежного протокола, тогда они должны быть обработаны программой метода платежа,чтобы преобразовать их в формат понятный Покупателю.
Определение компонента платежной расписки.
<!ELEMENT PayReceipt (PackagedContent*)>
<!ATTLIST PayReceipt ID | ID #REQUIRED |
PaymentRef NMTOKEN #REQUIRED | PayReceiptNameRefs NMTOKENS #IMPLIED |
Атрибуты:
ID | Идентификатор, который однозначно определяет компонент платежной расписки транзакции IOTP. |
PaymentRef | Содержит ссылку элемента (смотри раздел 3.5) на компонент платежа (смотри раздел 7.9), к которому относится данная расписка. |
PayReceiptNameRefs | Опционно содержит список значений атрибутов Name элементов Packaged Content, которые образуют расписку. Элементы Packaged Content могут содержать: |
о | компоненты данных платежной схемы, обмен которыми производится между Кассиром и Покупателем в процессе платежа и/или |
o | сам компоент платежной расписки. Заметим, что: |
o | каждый компонент схемы определяет в своем приложении имена элементов Packaged Content, которые должны быть перечислены в этом атрибуте (если они нужны). |
о | Если компонент платежной схемы содержит элементы Packaged Content, с именами которые совпадают с именем в PayReceiptNameRefs, тогда на такие компоненты платежной схемы должны ссылаться дайджесты в компоненте подписи платежного отклика (если используется такая подпись). |
Программа клиента должна спасать все компоненты, на которые имеются ссылки, с тем чтобы платежная расписка могла быть воспроизведена, если это потребуется.
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Опционно содержит информацию платежной расписки (платежную схему) в виде элементов Packaged Content (смотри раздел 3.7). Определение его содержимого смотри в прилжении платежной схемы. |
о | значения атрибута Name каждого элемента packaged content определены приложением платежного протокола; |
о | значение Name должно быть уникальным для каждого платежа, как и для всех схем платежа или компонентов платежной расписки с идентичным значением атрибута PaymentRef. |
7.12. Компоент Payment Note
Компонент Payment Note (платежное заывление) содержит дополнительную, несвязанную с платежом информацию, которую Кассир хочет предоставит покупателю. Например, если был произведен отзыв сделки или осуществлен депозит, тогда он может содержать информацию о балансе по завершении перевода. Данные должны дублировать информацию, содержащуюся в компоненте платежной расписки.
Информация, содержащаяся в компоненте Payment Note должна быть отображена или представлена каким-то иным способом покупателю. Для совместимости компонент Payment Note должен поддерживать как минимум содержимое типа "Plain Text", HTML и XML. Его определение представлено ниже.
<!ELEMENT PaymentNote (PackagedContent+) >
<!ATTLIST PaymentNote ID ID #REQUIREDContentSoftwareId CDATA #IMPLIED>
Атрибуты:
ID | Идентификатор, который однозначно определяет компонент платежной расписки транзакции IOTP. |
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Содержит дополнительную, не связанную с платежом информацию, которую кассир хочет довести до сведения покупателя в виде одного или более элементов Packaged Content (смотри раздел 3.7). |
Компонент доставки
Компонент доставки содержит информацию, необходимую для доставки товаров или услуг. Его определение приведено ниже.
<!ELEMENT Delivery (DeliveryData?, PackagedContent*) >
<!ATTLIST Delivery ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED | DelivExch (True | False) #REQUIRED |
DelivAndPayResp (True | False) #REQUIRED | ActionOrgRef NMTOKEN #IMPLIED> |
ID | Идентификатор, который однозначно определяет компонент доставки транзакции. |
xml:lang | Определяет язык, используемый атрибутами и дочерними элементами этого компонента, если только атрибут дочернего элемента xml:lang не перепишет это значение. Смотри раздел 3.8. |
DelivExch | Индицирует факт наличия в транзакции сообщений, ассоциированных с обменом доставки. Корректные значения: о“Истинно” указывает на наличие обмена доставки. o“Ложно” указывает на отсутствие обмена доставки. |
DelivAndPayResp |
Индицирует то, чтоблок отклика доставки (смотри раздел 8.11) и блок отклика плптежа (смотри раздел 8.9) находся в одном и том же сообщении IOTP. Корректные значения: o “Истинно” указывает, что оба блока находятся в одном и том же сообщении IOTP и o “Ложно” указывает, что каждый блок размещен в разных сообщениях IOTP. |
На практике комбинирование блока отклика доставкии блока отклика платежа имеет смысл только в случае, когда Продавец, Кассир и Агент доставки принадлежат одной организации, так как:
о Кассир должен иметь доступ к информации компонента Order, с тем чтобы знать что надо доставлять и
o Кассир должен должен быть способен осуществить доставку.
ActionOrgRef | Ссылка элемента на компонент организации Агента доставки. |
DeliveryData | Содержит подробности того, как будет осуществляться доставка. Смотри 7.13.1. |
PackagedContent | Содержит данные "пользователя", определенные для продавца и необходимые агенту доставки в виде одного или нескольких элементов Packaged Content. Смотри раздел 3.7. |
7.13.1. Элемент Delivery Data
Элемент DeliveryData содержит информацию о том, куда и как должны доставляться товары или услуги. Его определение представлено ниже.
<!ELEMENT DeliveryData (PackagedContent*) >
<!ATTLIST DeliveryData xml:lang | NMTOKEN #IMPLIED |
OkFrom CDATA #REQUIRED | OkTo CDATA #REQUIRED |
DelivMethod NMTOKEN #REQUIRED | DelivToRef NMTOKEN #REQUIRED |
DelivReqNetLocn CDATA #REQUIRED | SecDelivReqNetLocn CDATA #REQUIRED |
Атрибуты:
xml:lang | Определяет язык, используемый атрибутами компонента. Смотри раздел 3.8. |
OkFrom | Дата и время в формате [UTC] после которого Агент доставки может принять на обработку блок запроса доставки (смотри раздел 8.10). |
OkTo | Дата и время в формате [UTC], до которого Агент доставки может принять на обработку блок запроса доставки. |
DelivMethod |
Индицирует метод, с помощью которого могут быть доставлены товары или предоставлены услуги. Корректными считаются значения: о Post. Товары будут доставлены по почте или курьером. o Web. Товары будут доставлены электронным образом в комоненте Delivery Note. o Email. Товары будут доставлены электронным образом через e-mail |
DelivToRef | Ссылка элемента (смотри раздел 3.4) компонента Organisation транзакции IOTP, которая имеет роль DelivTo. Информация в этом блоке используется, чтобы определить, куда следует доставить покупку. Она должна быть совместимой с DelivMethod. В частности, если DelivMethod является: о Post, тогда здесь должен быть элемент почтового адреса, содержащий достаточно информации для доставки по почте, o Web, тогда не нужны никакие специфические требования. Информация будет послана на web-страницу Покупателя, o Email, тогда здесь должен быть элемент контактной информации с корректным адресом e-mail. |
DelivReqNetLocn | Содержит сетевую позицию, куда должен быть послан небезопасный блок запроса доставки (смотри раздел 8.10), который содержит компонент доставки. Содержимое этого атрибута зависит от транспортного механизма и должно согласовываться с требованиями документа [RFC-1738]. |
SecDelivReqNetLocn | Содержит сетевую позицию, куда должен быть послан безопасный блок запроса доставки (смотри раздел 8.10), который содержит компонент доставки. |
Безопасный запрос доставки предполагает использование безопасного канала, такого как [SSL/TLS] для того чтобы взаимодействовать с кассиром.
Содержимое этого атрибута зависит от транспортного механизма и должно соответствовать регламентациям документа [RFC1738]. Смотри также раздел 3.9.
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Дополнительная информация о доставке в виде одного или несколько элементов Packaged Content (смотри раздел 3.7), предоставляемая агенту доставки продавцу. |
Информационный компонент доставки покупателя используется покупателем для спецификации идентификатора, который может быть использован им для идентификации доставки. Его определение приведено ниже:
<!ELEMENT ConsumerDeliveryData EMPTY>
<!ATTLIST ConsumerDeliveryData ID ID #REQUIRED
ConsumerDeliveryId CDATA #REQUIRED>
Атрибуты:
ID | Идентификатор, который однозначно определяет информационный компонент доставки покупателя для данной транзакции. |
ConsumerDeliveryId | Идентификатор, специфицированный покупателем, который в случае возврата агентом доставки позволяет покупателю идентифицировать процедуру доставки. |
Компонент Delivery Note (накладная)содержит инструкции о доставке товаров или услу, или саму информацию о доставке. Это информация, которую частное лицо или организация, получающие накладную, могут использовать, когда осуществляется доставка.
Для совместимости компонент Delivery Note должен поддерживать Plain Text, HTML и XML. Его определение представлено ниже.
<!ELEMENT DeliveryNote (PackagedContent+) >
<!ATTLIST DeliveryNote ID ID #REQUIRED | xml:lang NMTOKEN #REQUIRED |
DelivHandlerDelivId CDATA #IMPLIED | ContentSoftwareId CDATA #IMPLIED> |
ID | Идентификатор, который однозначно определяет компонент Delivery Note транзакции IOTP. |
xml:lang | Определяет язык, используемый атрибутами или дочерними элементами в рамках данного компонента, если только его значение не будет переписано атрибутом xml:lang дочернего элемента. Смотри раздел 3.8. |
DelivHandlerDelivId | Опционный идентификатор, специфицированный Агентом доставки, который в случае возвращения Покупателем в другом компоненте доставки или каким-либо другим способом, позволяет Агенту доставки определить, о какой доставке идет речь. Он необходим для любого компонента доставки, вне зависимости от того содержится ли от в блоке запроса доставки. |
ContentSoftwareId | Смотри раздел 14. Словарь. |
PackagedContent | Содержит информацию декларации доставки (delivery note) в виде одного или нескольких элементов Packaged Content (смотри раздел 3.7). |
7.16. Компонент Status
Компонент Status содержит информацию состояния бизнес-процесса (успех или неудача) (смотри раздел 4.2). Его определение приведено ниже.
<!ELEMENT Status EMPTY >
<!ATTLIST Status ID ID #REQUIRED | xml:lang NMTOKEN #REQUIRED |
StatusType NMTOKEN #REQUIRED | ElRef NMTOKEN #IMPLIED |
CompletionCode NMTOKEN #IMPLIED
ProcessReference CDATA #IMPLIEDStatusDesc CDATA #IMPLIED >
Атрибуты:
ID | Идентификатор, который однозначно определяет компонент Status транзакции IOTP. |
xml:lang | Определяет язык, используемый атрибутами в пределах компонента. Смотри раздел 3.8. |
StatusType | Индицирует тип обмена документами, о котором сообщает компонент Status. Он может быть установлен в состояние предложение, платеж, доставка, аутентификация или “неопределено” (Undefined). |
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 приведены ниже вместе с указанием условий, когда атрибут должен присутствовать и указанием возможности восстановления при неудаче. |
ProcessReference | Этот опционный атрибут хранит ссылку для процесса, о состоянии которого сообщается. Он может содержать следующие значения: о когда StatusType = Offer, он должен содержать OrderIdentifier компонента Order; o когда StatusType = Payment, он должен содержать PaymentHandlerPayId компонентаданных о схеме платежа; o когда StatusType = Delivery, он должен содержать DelivHandlerDelivId компонента Delivery Note; o когда StatusType = Authentication, он должен содержать AuthenticationId компонента запроса аутентификации. |
Этот атрибут может быть использован внутри блока информационного отклика (смотри раздел 8.13), для того чтобы предоставить код ссылки для транзакции, которя ранее была недоступна.
Например, код упаковки может быть не присвоен в момент получения отклика доставки. Однако, если покупатель поздее выдаст запрос состояния транзакции, Агент доставки может проставить код упаковки в атрибут сообщения информационного отклика и послать его Покупателю.
StatusDesc | Опционное текстовое описание текущего состояния процесса на языке, заданном атрибутом xml:lang. |
Код завершения является единственно необходимым, если атрибут ProcessState = Failed (неудача). Ниже следующая таблица содержит допустимые значения CompletionCode, которые могут использоваться и индицировать, возможно ли восстановление процесса. Рекомендуется, чтобы там, где это необходимо для дальнейшего разъяснения, использовался атрибут StatusDesc.
Значение | Описание |
AuthError | Ошибка аутентификации. Проверка отклика аутентификации не прошла. |
ConsCancelled | Прервано покупателем (Consumer Cancelled). Покупатель по каким-то причинам решает прервать транзакцию. Это код является единственно верным в компоненте Status, содержащимся в блоках Cancel или информационного отклика. Восстановление невозможно. |
MerchCancelled | Предложение аннулировано (Offer Cancelled). Продавец по каким-то причинам аннулирует свое предложение и прерывает транзакцию. Этот код является единственно верным в компоненте Status, содержащимся в блоках Cancel или информационного отклика. Восстановление невозможно. |
Unspecified | Неспецифицированная ошибка. Возникла какая-то неизвестная проблема или ошибка, которая не соответствует ни однму из кодов CompletionCodes. Восстановление невозможно. |
TimedOutRcvr | Восстановимый таймаут (Recoverable Time Out). Сообщения были посланы, а откликов не получено. Документальный обмен прерван таймаутом. Этот код допустим в случае информационного запроса транзакции. |
TimedOutNoRcvr | Невосстановимый таймаут (Non Recoverable Time Out). Сообщения были посланы повторно, а откликов не получено. Документальный обмен прерван таймаутом. Этот код допустим в случае информационного запроса транзакции. Восстановление невозможно. |
CompletionCode необходим, если атрибут ProcessState = Failed. Ниже следующая таблица содержит допустимые значения CompletionCode, которые могут использоваться и индицировать, когда возможно восстановление. Рекомендуется, чтобы атрибут StatusDesc использовался индивидуальными платежными схемами для предоставления дальнейших пояснений, там где это уместно.
Значение | Описание |
BrandNotSupp | Вид платежа не поддерживается Кассиром. |
CurrNotSupp | Валюта не поддерживается. Валюта, в которой выполнен платеж, не поддерживается платежным инструментом или кассиром. |
ConsCancelled | Отмена Покупателем (Consumer Cancelled). Покупатель по какой-либо причине решил аннулировать платеж. Этот код является единственно верным в компоненте Status, содержащимся в блоках Cancel или информационного отклика. Восстановление невозможно. |
PaymtCancelled | Платеж аннулирован (Payment Cancelled). Кассир по каким-то причинам не хочет завершить платежную операцию и аннулирует транзакцию. Этот код является единственно верным в компоненте Status, содержащегося в блоках Cancel или информационного отклика. Опции восстановления смотри ниже. |
AuthError | Ошибка аутентификации. Аутентификационная проверка платежной схемы не прошла. Восстановление возможно. Чтобы определить, что допустимо, смотри приложение по платежным схемам. |
InsuffFunds | Нехватает средств. Средств для осуществления платежа недостаточно. Опции восстановления смотри ниже. |
InstBrandInvalid | Платежный инструмент не приемлем для данного вида платежа. Использован платежный инструмент, который не соответствует выбранному виду платжа. Например, использована кредитная карта Visa, хотя в качестве вида платежа была выбрана MasterCard. Опции восстановления смотри ниже. |
InstNotValid | Платежный инструмент не приемлем для сделки. Платежный инструмент по каким-то причинам не может быть использован для предлагаемого вида сделки. Опции восстановления смотри ниже. |
BadInstrument | Плохой инструмент. Имеется проблема с использованным платежным инструментом, что означает, что он не может быть применен для платежа. Опции восстановления смотри ниже. |
Unspecified | Неспецифицированная ошибка. Имеет место какая-то неизвестная проблема или ошибка, которая не совпадает ни с одним из кодов CompletionCodes. Атрибут StatusDesc должен предоставить объяснение причины. Опции восстановления смотри ниже. |
TimedOutRcvr | Восстановимый таймаут (Recoverable Time Out). Сообщения были повторно посланы, но отклика не получено. Документальный обмен прерван по таймауту. Этот код приемлем при транзакции информационного запроса. Восстановление возможно, если последнее сообщение другой торговой роли получено снова. |
TimedOutNoRcvr | Невосстановимый таймаут. Сообщения были повторно посланы, но отклика не получено. Документальный обмен прерван по таймауту. Этот код приемлем при транзакции информационного запроса. Восстановление невозможно. |
Восстановление прооцедуры платежа при покупках, зависящих от вида платежа возможно только в случае, если компонент выбора вида платежа, посланный продавцом покупателю, не изменился. На практике это означает, что должны использоваться тот же элемент вида платежа, платежный протокол и сумма. Единтвенно что можно изменить – это платежный инструмент. Любые другие изменения будут неприемлемы.
7.16.3. Коды завершения доставки