Протокол IGRP

       

Отношения элементов списка видов платежа



Рисунок .15. Отношения элементов списка видов платежа

Примеры списков видов платежа содержатся в главе 11.2.

7.7.1. Элемент Brand

Элемент Brand описывает вид платежа, который может быть использован при оплате покупки. Один или более таких элементов образуют компонент списка видов платежа, который имеет атрибут PayDirection, установленный равным Debit. Только один элемент вида платежа может содержаться в компоненте списка видов платежа (Brand List), который имеет атрибут PayDirection = Credit.

<!ELEMENT Brand (ProtocolBrand*, PackagedContent*) >
xml:lang NMTOKEN #IMPLIED BrandId CDATA #REQUIRED BrandName CDATA #REQUIRED BrandLogoNetLocn CDATA #REQUIRED BrandNarrative CDATA #IMPLIED ProtocolAmountRefs IDREFS #REQUIRED


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), содержащие информацию о протоколе и/ или виде платежа, которые может использовать платежный протокол. Содержимое этой информации определяется в приложении для платежных протоколов.
7.7.3. Элемент Protocol Amount

Элемент 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. Словарь.
Cодержимое:

PackagedContent Опционные элементы Packaged Content (смотри раздел 3.7), содержащие информацию о протокольной сумме, которая может использоваться платежным протоколом. Содержимое этой информации определено в приложении для платежных протоколов.
Примеры элементов Protocol Amount приведены в секции 11.2.

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.
Так как значения CurrCodeType управляются процедурой, описанной в секции 12, допускается определение пользователем собственных значений CurrCodeType. Примеры элементов Currency Amount представлены в разделе 11.2.

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
ContentSoftwareId CDATA #IMPLIED>



Атрибуты:

ID Идентификатор элемента, на который может ссылаться элемент Brand; или компонент выбора вида платежа (Brand Selection), содержащиеся в последующих сообщениях платежного запроса. Он однозначно идентифицирует элемент PayProtocol данной транзакции IOTP.
xml:lang Определяет язык, используемый атрибутами и содержимым данного элемента. Смотри раздел 3.8.
ProtocolId Состоит из имени протокола и версии, например "SETv1.0".
Значения ProtocolId определены схемой/методом платежа владельцев в документе, который описывает, как инкапсулировать платежный протокол в IOTP.

ProtocolName Описание платежного протокола и его версии на языке, идентифицированном атрибутом xml:lang. Например "Secure Electronic Transaction Version 1.0". Его целью является помочь, если требуется, в предоставлении информации об используемом платежном протоколе.
ActionOrgRef Ссылка элемента (смотри раздел 3.5) на компонент Organisation для Кассира при данном платежном протоколе.
PayReqNetLocn Сетевая позиция, указывающая куда следует послать платежный запрос в отсутствии гарантии безопасности при заданном протоколе.
Содержимое этого атрибута зависит от транспортного механизма (и должно быть согласованос документом [RFC1738].

SecPayReqNetLocn Сетевая позиция, указывающая куда следует послать платежный запрос в условиях гарантии безопасности при заданном протоколе. Безопасный платеж предполагает для коммуникации с кассиром использование безопасного канала, такого как [SSL/TLS].
Содержимое этого атрибута должно согласовываться с регламентациями документа [RFC1738]. Смотри раздел 3.9.

ContentSoftwareIdСмотри раздел 14. Словарь.

Cодержимое:

PackagedContent Опционные элементы Packaged Content (смотри раздел 3.7), содержащие информацию о протоколе, который используется платежным протоколом. Содержание этой информации определяется в приложении для платежных ппротоколов.
Примеры элементов платежного протокола содержатся в разделе 11.2.

7.8. Компонент выбора вида платежа



Компонент выбора вида платежа идентифицирует выбор вида платежа, платежный протокол и кассира. Этот элемент используется:

  • в сообщениях платежных запросов в транзакциях покупки и обмена ценностями для идентификации вида платежа, протокола и кассира;
  • чтобы опционно проинформировать продавца об используемом виде платежа с целью возможной последующей коррекции предложения и заказа.
В базовой версии IOTP, целостность компонентов выбора вида платежа не гарантируется. Однако модификация компонентов выбора вида платежа может привести лишь к отказу обслуживания, если сам платежный протокол безопасен и контролирует модификацию или дублирование сообщений и может противостоять любым другим атакам.

Определение компонента выбора вида платежа представлено ниже.

<!ELEMENT BrandSelection (BrandSelBrandInfo?, BrandSelProtocolAmountInfo?,

BrandSelCurrencyAmountInfo?) >

<!ATTLIST BrandSelection ID ID #REQUIRED

BrandListRef NMTOKEN #REQUIRED BrandRef NMTOKEN #REQUIRED
ProtocolAmountRef NMTOKEN #REQUIRED
CurrencyAmountRef NMTOKEN #REQUIRED >

Атрибуты:

ID Идентификатор, который однозначно определяет компонент выбора вида платежа транзакции.
BrandListRef Ссылка элемента (смотри раздел 3.5) компонента списка видов платежа, из которого был выбран Brand.
BrandRef Ссылка элемента Brand компонента списка видов платежа, который был выбран из списка и использован для платежа.
ProtocolAmountRef Ссылка элемента для Protocol Amount в пределах компонента списка видов платежа, который использован при платеже.
CurrencyAmountRef Ссылка элемента для Currency Amount в пределах компонента списка видов платежа, который использован при платеже.
Cодержимое:

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.
Пример компонента выбора вида платежа включен в раздел 11.2.



7.8.1. Информационный элемент выбора вида платежа

Информационный элемент выбора вида платежа cсодержит любую дополнительную информацию, которая может быть необходима для какого-то конкретного вида платежа. Смотри приложение IOTP для платежных методов, где описано применние этого элемента.

<!ELEMENT BrandSelBrandInfo (PackagedContent+) >
<!ATTLIST BrandSelBrandInfo ID ID #REQUIRED ContentSoftwareId CDATA #IMPLIED >

Атрибуты:

ContentSoftwareId Смотри раздел 14. Словарь.
Cодержимое:

PackagedContent Элементы Packaged Content (смотри раздел 3.7), содержащие дополнительные данные, которые могут быть необходимы для конкретного вида платежа. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента.
7.8.2. Элемент Amount Info протокола выбора вида платежа

Элемент Amount Info протокола выбора вида платежа содержит любую дополнительную информацию, зависящую от платежного протокола, которая может быть необходима для конкретного вида платежа или плптежного протокола. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента.

<!ELEMENT BrandSelProtocolAmountInfo (PackagedContent+)>
<!ATTLIST BrandSelProtocolAmountInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED>

Атрибуты:

ContentSoftwareId Смотри раздел 14. Словарь.
Cодержимое:

PackagedContent Элементы Packaged Content (смотри раздел 3.7), которые могут содержать дополнительную информацию, необходимую для конкретного вида платежа. Смотри приложение IOTP по платежным методам, где описаны методы использования данного элемента.
7.8.3. Информационный элемент валютной суммы выбора вида платежа (Brand Selection Currency Amount Info)

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



<!ELEMENT BrandSelCurrencyAmountInfo (PackagedContent+)>
<!ATTLIST BrandSelCurrencyAmountInfo ID ID #REQUIRED
ContentSoftwareId CDATA #IMPLIED>

Атрибуты:

ContentSoftwareId Смотри раздел 14. Словарь.
Cодержимое:

PackagedContent Элементы Packaged Content (смотри раздел 3.7), которые содержат дополнительную информацию, относящуюся к виду платежа и валюты. Смотри приложение IOTP по платежным методам, где описано использование этого элемента.
7.9. Компонент платежа (Payment)

Компонент платежа содержит информацию, используемую для управления процедурой выполнения платежа. Он предоставляет информацию о:

  • Временном интервале в пределах которого Кассир может начать платежную операцию;
  • Ссылку на список видов платежа (смотри раздел 7.7), который идентифицирует виды платежа, протоколы, виды валюты и суммы, которые могут использоваться при осуществлении платежа.
  • следует ли предоставлять платежную расписку;
  • должен ли данному платежу предшествовать другой платеж.
Его определение выглядит следующим образом.

<!ELEMENT Payment EMPTY > <!ATTLIST Payment ID ID #REQUIRED
OkFrom CDATA #REQUIRED OkTo CDATA #REQUIRED
BrandListRef NMTOKEN #REQUIRED SignedPayReceipt (True | False) #REQUIRED
StartAfterRefs NMTOKENS #IMPLIED>

Атрибуты:

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. Словарь.
Cодержимое:

PackagedContent Содержит протокольную информацию о схеме платежа в виде элементов Packaged Content (смотри раздел 3.7). Определение содержимого смотри в приложение по схемам платежа.
Заметим, что:

  • значения атрибута Name каждого элемента pakaged content определены в приложении для платежных протоколов;
  • значение каждого Name должно быть уникальным для платежа, где платеж определяется как совокупность всех платежных схем или компонентов платежных расписок с идентияным значением атрибута PaymentRef.
7.11.


Компонент платежной расписки

Плптежная расписка представляет собой запись о платеже, которая показывает, какая сумма заплачена или получена. Она отдичается от расписки о покупке, тем что здесь нет записи о том, что куплено. Обычно в компоенте платежной расписки содержатся данные, которые описывают:

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

Точное определение содержимого платежной расписки зависит от метода платежа. Информация, содержащаяся в компоненте платежной расписки, должна отображаться или каким-либо другим способом доводиться до сведения Покупателя.

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

Определение компонента платежной расписки.

<!ELEMENT PayReceipt (PackagedContent*)>
<!ATTLIST PayReceipt ID ID #REQUIRED
PaymentRef NMTOKEN #REQUIRED PayReceiptNameRefs NMTOKENS #IMPLIED
ContentSoftwareId CDATA #IMPLIED>

Атрибуты:

ID Идентификатор, который однозначно определяет компонент платежной расписки транзакции IOTP.
PaymentRef Содержит ссылку элемента (смотри раздел 3.5) на компонент платежа (смотри раздел 7.9), к которому относится данная расписка.
PayReceiptNameRefs Опционно содержит список значений атрибутов Name элементов Packaged Content, которые образуют расписку. Элементы Packaged Content могут содержать:
о компоненты данных платежной схемы, обмен которыми производится между Кассиром и Покупателем в процессе платежа и/или
o сам компоент платежной расписки. Заметим, что:
o каждый компонент схемы определяет в своем приложении имена элементов Packaged Content, которые должны быть перечислены в этом атрибуте (если они нужны).
о Если компонент платежной схемы содержит элементы Packaged Content, с именами которые совпадают с именем в PayReceiptNameRefs, тогда на такие компоненты платежной схемы должны ссылаться дайджесты в компоненте подписи платежного отклика (если используется такая подпись).



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

ContentSoftwareId Смотри раздел 14. Словарь.
Cодержимое:

PackagedContent Опционно содержит информацию платежной расписки (платежную схему) в виде элементов Packaged Content (смотри раздел 3.7). Определение его содержимого смотри в прилжении платежной схемы.
Заметим, что:
о значения атрибута Name каждого элемента packaged content определены приложением платежного протокола;
о значение Name должно быть уникальным для каждого платежа, как и для всех схем платежа или компонентов платежной расписки с идентичным значением атрибута PaymentRef.
Заметим, что должны присутствоать либо атрибут PayReceiptNameRefs, либо элемент PackagedContent или оба.

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. Словарь.
Cодержимое:

PackagedContent Содержит дополнительную, не связанную с платежом информацию, которую кассир хочет довести до сведения покупателя в виде одного или более элементов Packaged Content (смотри раздел 3.7).
7.13.


Компонент доставки

Компонент доставки содержит информацию, необходимую для доставки товаров или услуг. Его определение приведено ниже.

<!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“Ложно” указывает на отсутствие обмена доставки.
Если DelivExch = true, должен присутствовать элемент DeliveryData. Если DelivExch = false, он может отстутствовать.

DelivAndPayResp Индицирует то, чтоблок отклика доставки (смотри раздел 8.11) и блок отклика плптежа (смотри раздел 8.9) находся в одном и том же сообщении IOTP. Корректные значения:

o “Истинно” указывает, что оба блока находятся в одном и том же сообщении IOTP и
o “Ложно” указывает, что каждый блок размещен в разных сообщениях IOTP.
Атрибут DelivAndPayResp не должен иметь значение “истинно”, если DelivExch = “ложно”.

На практике комбинирование блока отклика доставкии блока отклика платежа имеет смысл только в случае, когда Продавец, Кассир и Агент доставки принадлежат одной организации, так как:

о Кассир должен иметь доступ к информации компонента Order, с тем чтобы знать что надо доставлять и
o Кассир должен должен быть способен осуществить доставку.

ActionOrgRef Ссылка элемента на компонент организации Агента доставки.
Cодержимое:

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
ContentSoftwareId CDATA #IMPLIED>

Атрибуты:

xml:lang Определяет язык, используемый атрибутами компонента. Смотри раздел 3.8.
OkFrom Дата и время в формате [UTC] после которого Агент доставки может принять на обработку блок запроса доставки (смотри раздел 8.10).
OkTo Дата и время в формате [UTC], до которого Агент доставки может принять на обработку блок запроса доставки.
DelivMethod Индицирует метод, с помощью которого могут быть доставлены товары или предоставлены услуги. Корректными считаются значения:
о Post. Товары будут доставлены по почте или курьером.
o Web. Товары будут доставлены электронным образом в комоненте Delivery Note.
o Email. Товары будут доставлены электронным образом через e-mail
Значения DelivMethod управляются процедурой, описанной в разделе 12, что допускает определение новых кодов пользователем.

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. Словарь.
Cодержимое:

PackagedContent Дополнительная информация о доставке в виде одного или несколько элементов Packaged Content (смотри раздел 3.7), предоставляемая агенту доставки продавцу.
7.14. Информационный компонент доставки Покупателя

Информационный компонент доставки покупателя используется покупателем для спецификации идентификатора, который может быть использован им для идентификации доставки. Его определение приведено ниже:

<!ELEMENT ConsumerDeliveryData EMPTY>
<!ATTLIST ConsumerDeliveryData ID ID #REQUIRED
ConsumerDeliveryId CDATA #REQUIRED>

Атрибуты:

ID Идентификатор, который однозначно определяет информационный компонент доставки покупателя для данной транзакции.
ConsumerDeliveryId Идентификатор, специфицированный покупателем, который в случае возврата агентом доставки позволяет покупателю идентифицировать процедуру доставки.
7.15. Компонент Delivery Note

Компонент 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. Словарь.
Cодержимое:

PackagedContent Содержит информацию декларации доставки (delivery note) в виде одного или нескольких элементов Packaged Content (смотри раздел 3.7).
Если содержимым сообщения доставки является сообщение Mime, тогда Delivery Note может запустить приложение, которое вызываеть реальный процесс доставки.

7.16. Компонент Status

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

<!ELEMENT Status EMPTY >
<!ATTLIST Status ID ID #REQUIRED xml:lang NMTOKEN #REQUIRED
StatusType NMTOKEN #REQUIRED ElRef 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.
7.16.1. Коды завершения предложения

Код завершения является единственно необходимым, если атрибут 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). Сообщения были посланы повторно, а откликов не получено. Документальный обмен прерван таймаутом. Этот код допустим в случае информационного запроса транзакции. Восстановление невозможно.
7.16.2. Коды завершения платежа

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 Невосстановимый таймаут. Сообщения были повторно посланы, но отклика не получено. Документальный обмен прерван по таймауту. Этот код приемлем при транзакции информационного запроса. Восстановление невозможно.
Если оплата не зависит от вида платежа, тогда восстановление для некоторых видов кода завершения возможно для покупателя, который может выбрать другой вид платежа или новый платежный инструмент для того же вида платежа. Заметим, что это может потребовать замены кассира. Здесь применимы следующие коды: BrandNotSupp, PaymtCancelled, InsuffFunds, InstBrandInvalid, InstNotValid, BadInstrument и Unspecified.

Восстановление прооцедуры платежа при покупках, зависящих от вида платежа возможно только в случае, если компонент выбора вида платежа, посланный продавцом покупателю, не изменился. На практике это означает, что должны использоваться тот же элемент вида платежа, платежный протокол и сумма. Единтвенно что можно изменить – это платежный инструмент. Любые другие изменения будут неприемлемы.

7.16.3. Коды завершения доставки



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