Протокол IGRP

Торговые компоненты



7. Торговые компоненты



Далее рассматриваются торговые компоненты, используемые в IOTP. Торговые компоненты являются дочерними XML-элементами, что показано на диаграмме Рисунок .14.


Содержимое атрибута зависит от транспортного механизма.

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



SuccessNetLocn Содержит сетевую позицию, которая должна быть отображена после успешного завершения транзакции.
Содержимое этого аптрибута зависит от транспортного механизма. Должен присутствовать либо SenderNetLocn, либо SecureSenderNetLocn или оба эти атрибута.

7.2. Компонент запроса аутентификации

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

<!ELEMENT AuthReq (Algorithm, PackagedContent*)>
<!ATTLIST AuthReq ID ID #REQUIRED
AuthenticationId CDATA #REQUIREDContentSoftwareId CDATA #IMPLIED>

Если требуется, алгоритм может использовать данные вызова, содержащиеся в элементах Packaged Content из компонента запроса аутентификации. Формат Packaged Content является зависимым от алгоритма.

Атрибуты:

ID Идентификатор, который однозначно идентифицирует компонент запроса аутентификации для данной транзакции IOTP.
AuthenticationId Идентификатор, специфицированный аутентификатором, который, если прислан организацией, которая получает запрос, позволит аутентификатору определить, какая аутентификационная процедура требуется.
ContentSoftwareId Смотри раздел 14. Словарь
Cодержимое:

PackagedContent Содержит данные вызова в виде одного или более элементах Packaged Content (смотри раздел 3.7), на которые следует рееагировать, используя алгоритм, опреденный элементом Algorithm.
Algorithm Содержит информацию, которая описывает алгоритм (смотри 7.19. Компоненты подписи), который должен быть использован для генерации отклика аутентификации.
Алгоритмы, которые могут использоваться, идентифицированы атрибутом Name элемента Algorithm.

7.3. Компонент отклика аутентификации

Компонент отклика аутентификации содержит результаты аутентификационного запроса.


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

В зависимости от выбранного алгоритма, результаты его применения будут содержаться в компоненте подписи, которая подтверждает отклик аутентификации, или в элементах Packaged Content компонента отклика аутентификации. Его определение представлено ниже.

<!ELEMENT AuthResp (PackagedContent*) >
<!ATTLIST AuthResp ID ID #REQUIRED
AuthenticationId CDATA #REQUIREDSelectedAlgorithmRef NMTOKEN #REQUIRED
ContentSoftwareId CDATA #IMPLIED >

Атрибуты:

ID Идентификатор, который для данной транзакции однозначно определяет компонент отклика аутентификации.
AuthenticationId Идентификатор аутентификации, специфицированный аутентификатором, который был включен компонент запроса (смотри раздел 7.2). Это позволяет аутентификатору идентифицировать метод аутентификации.
SelectedAlgorithmRef Ссылка элемента, которая определяет элемент алгоритма, сипользуемого для формирования отклика аутентификации.
ContentSoftwareId Смотри раздел 14. Словарь.
Cодержимое:

PackagedContent Может содержать отклик, сформированный в качестве результата применения алгоритма, выбранного из компонента запроса аутентификации, смотри раздел 7.2.
Например, для заданной схемы платежа он может содержать данные, зависящие от этой схемы.

7.4. Компонент запроса информации торговой роли

Этот торговый компонент содержит список торговых ролей (смотри раздел 2.1), информация для которых запрошена. Результатом запроса торговой роли является набор компонентов Organisation (смотри раздел 7.6), которые описывают каждую из запрошенных торговых ролей. Его определение приведено ниже.

<!ELEMENT TradingRoleInfoReq EMPTY>
<!ATTLIST TradingRoleInfoReq ID ID #REQUIRED
TradingRoleList NMTOKENS #REQUIRED >

Атрибуты:

ID Идентификатор, который однозначно определяет компонент информационного запроса для торговой роли в рамках транзакции IOTP.
TradingRoleList Содержит список из одной или более торговых ролей (смотри атрибут TradingRole элемента Trading Role – раздел 7.6.2), для которых была запрошена информация.
7.5.


Компонент заказа

Компонент Order содержит информацию о заказе. Его определение представлено ниже.

<!ELEMENT Order (PackagedContent*) >
<!ATTLIST Order ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED OrderIdentifier CDATA #REQUIRED
ShortDesc CDATA #REQUIRED OkFrom CDATA #REQUIRED
OkTo CDATA #REQUIRED ApplicableLaw CDATA #REQUIRED
ContentSoftwareId CDATA #IMPLIED >

Атрибуты:

ID Идентификатор, который однозначно определяет компонент Order в пределах текущей транзакции IOTP.
xml:lang Определяет язык, использованный атрибутами или дочерними элементами в пределах компонента, если только его значение не было изменено с помощью атрибута xml:lang дочернего элемента. Смотри раздел 3.8.
OrderIdentifier Это код, число или другой идентификатор, который автор заказа может использовать для идентификации заказа. В пределах транзакции он должен быть уникальным. Если он используется так, то нет нужды специфицировать содержимое элемента заказа, так как имеется ссылка на нужную информацию в базе данных.
ShortDesc Краткое описание заказа на языке, определенном атрибутом xml:lang. Оно используется для упрощения выбора индивидуального заказа из списка, например, из базы данных заказов, записанных туда продавцом, покупателем и т.д..
OkFrom Дата и время в формате [UTC], после которого предложение, сделанное Продавцом теряет силу.
OkTo Дата и время в формате [UTC], до которого получатель может воспринимать предложение продавца не имеющим силу.
ApplicableLaw Фраза на языке, определенном атрибутом xml:lang, которая описывает штат или страну, юристдикция которой будет использована при разрешении конфликтов и споров.
ContentSoftwareId Смотри раздел 14. Словарь.
Cодержимое:

PackagedContent Опционное описание заказа в виде одного или более элементов Packaged Content (смотри раздел 3.7).
7.5.1. Содержимое описания заказа

Элемент Packaged Content будет в норме необходим, однако он может быть опущен там, где достаточная информация о покупке может быть получена из атрибута ShortDesc.


Если необходимо полное описание заказа, могут использоваться несколько элементов Packaged Content.

Хотя сумма и валюта вероятно присутствуют в элементах Packaged Content описания заказа, они содержатся в торговых компонентах, связанных с платежом (список видов платежа, выбор вида платежа и платеж). Это означает, что важно, чтобы сумма, которая действительно дожна быть уплачена, была четко отображена для Покупателя.

Для совместимости разные реализации должны поддерживать как минимум Plain Text, HTML и XML, что облегчит отображение.

7.5.2. Временные метки OkFrom и OkTo

Заметим, что:

  • Дата OkFrom может быть позже чем дата OkFrom компонента Payment (смотри раздел 7.9), связанного с этим заказом, и
  • аналогично, дата OkTo может быть раньше чем дата OkTo компонента Payment (смотри раздел 7.9).
Продавец в контексте Интернет-коммерции в исходный момент с анонимными покупателями выявляет условия предложения на WEB-странице. Для того чтобы получить товар или услуги покупатель должен согласиться с этими условиями.

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

  • предложение ограничено по времени;
  • временные метки OkFrom и OkTo специфицируют время действия предложения;
  • часы, напр., часы продавца, будут использоваться для определения действия предложения.
Заметим также, что даты OkFrom и OkTo могут также присутствовать в элементах Packaged Content описания заказа, эти даты содержатся в компоненте Order. Важно, чтобы даты OkFrom и OkTo использовались в формате, приемлемом для покупателя.

7.6. Компонент Organisation

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

  • описать продавца, который продает товары,
  • идентифицировать того, кто осуществляет покупку,
  • идентифицировать того, кто будет доставлять товары,
  • обеспечивать облуживание покупателя,
  • описать того, кто будет Кассиром.
Заметим, что компоненты Organisation, которые должны присутствовать в сообщении IOTP, зависят от выполняемой транзакции.


Смотри раздел 9.

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

<!ELEMENT Org (TradingRole+, ContactInfo?, PersonName?, PostalAddress?)>
<!ATTLIST Org ID ID #REQUIRED
xml:lang NMTOKEN #REQUIRED OrgId CDATA #REQUIRED
LegalName CDATA #IMPLIED ShortDesc CDATA #IMPLIED
LogoNetLocn CDATA #IMPLIED >

Атрибуты:

ID Идентификатор, который однозначно определяет компонент Organisation в пределах текущей транзакции IOTP.
xml:lang Определяет язык, использованный атрибутами или дочерними элементами в пределах данного компонента, если только его значение не было изменено с помощью атрибута xml:lang дочернего элемента. Смотри раздел 3.8.
OrgId Код, который идентифицирует организацию, описанную компонентом Organisation. Смотри 7.6.1.
LegalName Для организаций, которые являются коммерческими компаниями, это их легальное название на языке, определенном атрибутом xml:lang. Это необходимо для организаций, чьими торговыми ролями не являются Покупатель или DelivTo.
ShortDesc Краткое описание организации на языке, определенном атрибутом xml:lang. Это обычно имя, под которым известна организация. Например, если легальное название было "Blue Meadows Financial Services Inc.", тогда его короткое имя может быть "Blue Meadows".
Атрибут используется для упрощения выбора отдельной организации из списка, например из базы данных организаций, вовлеченных в транзакции, которая записана Покупателем.

LogoNetLocn Сетевая позиция, которая может быть использована для загрузки логотипа организации.
Смотри раздел 10. Содержимое этого атрибута должно соответствовать [RFC1738].

Cодержимое:

TradingRole Смотри 7.6.2. Элемент торговой роли.
ContactInfo Смотри 7.6.3. Элемент контактной информации.
PersonName Смотри 7.6.4. Персональное имя.
PostalAddress Смотри 7.6.5. Почтовый адрес.
7.6.1. ID организаций

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


На практике это достигается следующим образом:

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

OrgId ::= NonConsumerOrgId | ConsumerOrgId
NonConsumerOrgId ::= DomainName
ConsumerOrgId ::= ConsumerOrgIdPrefix (namechar)+ "/" NonConsumerOrgId
ConsumerOrgIdPrefix ::= "Consumer:"
ConsumerOrgIdID организации покупателя состоит из:

  • стандартного префикса, чтобы идентифицировать то, что это организация покупатель. Далее следует
  • один или более символов, которые согласуются с определением "namechar" XML. Смотри спецификации [XML]. За ними следует
  • NonConsumerOrgId организации, которая выдала ConsumerOrgId. Обычно это продавец. Применение символов в верхнем или нижнем регистре не играет роли.
NonConsumerOrgId Если роль не соответствует покупателю, тогда здесь содержится каноническое имя этой организации. Смотри [DNS], за которым опционно следуют дополнительные символы, если требуется сделать NonConsumerOrgId уникальным.
Заметим, что NonConsumerOrgId не может начинаться с ConsumerOrgIdPrefix. Допускается использование строчных и прописных символов. Ниже приведены примеры Id организации:

  • newjerseybooks.comid организации-продавца;
  • westernbank.co.ukid организации-кассира;
  • consumer:1000247ABH/newjerseybooks.comid организации-покупателя выданный продавцом.
7.6.2. Элемент торговая роль

Этот элемент идентифицирует торговую роль человека или организации в данной транзакции IOTP. Заметим, что организация может иметь более чем одну торговую роль и несколько ролей может присутствовать в одном элементе Organisation.


Определение элемента представлено ниже:

<!ELEMENT TradingRole EMPTY >
<!ATTLIST TradingRole ID ID #REQUIRED
TradingRole NMTOKEN #REQUIRED IotpMsgIdPrefix NMTOKEN #REQUIRED
CancelNetLocn CDATA #IMPLIED ErrorNetLocn CDATA #IMPLIED
ErrorLogNetLocn CDATA #IMPLIED>

Атрибуты:

ID Идентификатор, который однозначно определяет элемент торговая роль в пределах текущей транзакции IOTP.
TradingRole Торговая роль организации. Возможные значения:
o Покупатель. Лицо или организация, которая действует в роли покупателя в данной транзакции.
o Продавец. Лицо или организация, которая действует в роли продавца в данной транзакции.
o Агент доставки. Лицо или организация, которая доставляет товар или предоставляет услуги в рамках данной транзакции;
o DelivTo. Лицо или организация, которая получает товары или услуги в рамках данной транзакции.
o CustCare. Лицо или организация, которая обеспечивает обслуживание покупателя в данной транзакции.

IotpMsgIdPrefix Содержит префикс, который должен быть использован для всех IOTP сообщений, посланных торговой ролью в данной транзакции. Значения, которые следует использовать определены в 3.4.1.
CancelNetLocn Содержит сетевую позицию, куда покупатель должен обратиться, если он аннулирует транзакцию по какой-либо причине. Атрибут может быть использован торговой ролью для отправки отклика, который более соответствует обстоятельствам конкретной транзакции.
Этот атрибут:

  • не должен присутствовать, когда TradingRole усановлено равным роли Покупателя или DelivTo,
  • должен присутствовать, когда TradingRole = Продавец, Кассир или Агент доставки.
Содержимое этого атрибута зависит от транспортного механизма.

ErrorNetLocn Содержит сетевую позицию, которая должна отображаться Покупателем, после того как он получил или сгенерировал блок Error, содержащий компонент Error с атрибутом Severity равным:
  • HardError,
  • Предупреждение, но Покупатель решает не продолжать транзакцию.
  • TransientError и транзакция прерывается по таймауту.
Этот атрибут:



  • не должен присутствовать, когда TradingRole равно Покупатель или DelivTo,
  • должен присутствовать, когда TradingRole равно Продавец, Кассир или Агент доставки.
Содержимое атрибута зависит от транспортного механизма.

ErrorLogNetLocn Опционно. Содержит сетевую позицию, куда Покупателю следует посылать IOTP сообщения, которые содержат блоки Error с компонентами Error сатрибутом Severity равным:
  • HardError,
  • Предупреждение, но Покупатель решает не продолжать транзакцию,
  • TransientError и транзакция прерывается по таймауту.
Этот атрибут:

  • не должен присутствовать, когда TradingRole = Покупатель,
  • должен присутствовать, когда TradingRole равно Продавец, Кассир или Агент доставки.
Содержимое этого атрибута зависит от транспортного механизма.

Атрибут ErrorLogNetLocn может использоваться для посылки сообщений об ошибках программной компании или другой оргаанизации, ответственной за решение проблем с программами, которые посылают входные сообщения. Смотри раздел 7.21.1.

7.6.3. Элемент контактной информации

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

<!ELEMENT ContactInfo EMPTY >

<!ATTLIST ContactInfo xml:lang NMTOKEN #IMPLIED
Tel CDATA #IMPLIED Fax CDATA #IMPLIED
Email CDATA #IMPLIED NetLocn CDATA #IMPLIED >
Атрибуты:

xml:lang Определяет язык данного элемента. Смотри раздел 3.8.
Tel Телефонный номер, по которому можно контактировать с организацией. Заметим, что это текстовое поле и проверок корректности содержимого не производится.
Fax Номер факса, по которому можно контактировать с организацией. Заметим, что это текстовое поле и проверок корректности содержимого не производится.
Email Адрес электронной почты, по которому можно контактировать с организацией. Заметим, что поле должно следовать регламентациям для адресных спецификаций, содержащимся в [RFC822].
NetLocn Адрес Интернет, по которому можно найти информацию об организации, используя WEB-броузер.
Содержимое этого атрибута должно согласовываться с документом [RFC1738].



7.6.4. Элемент личного имени

Этот элемент содержит имя частного лица. Все поля являются опционными, однако GivenName (имя) или FamilyName (фамилия) должны присутствоать. Его опредление представлено ниже.

<!ELEMENT PersonName EMPTY >

<!ATTLIST PersonName xml:lang NMTOKEN #IMPLIED
Title CDATA #IMPLIED GivenName CDATA #IMPLIED
Initials CDATA #IMPLIED FamilyName CDATA #IMPLIED >
Атрибуты:

xml:lang Определяет язык с помощью атрибута внутри элемента. Смотри раздел 3.8.
Title Отличительное имя; личное прозвище, наследственное или нет, должность (напр., судья, мэр), дворянское звание (напр., герцог, герцогиня, граф), или используемое при обращение к человеку (напр., Mr, Mrs, Miss, товарищ, господин)
GivenName Имя, под которым человек известен в семье, друзьям или знакомым (имя или фамилия).
Initials Первая буква второго имени (отчества), под которым человек известен в своей семье, друзьям или знакомым.
FamilyName Фамилия. Это обычно часть персонального имени, которая передается по наследству от родителей к детям.
7.6.5. Элемен почтового адреса

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

<!ELEMENT PostalAddress EMPTY >

<!ATTLIST PostalAddress xml:lang NMTOKEN #IMPLIED
AddressLine1 CDATA #IMPLIED AddressLine2 CDATA #IMPLIED
CityOrTown CDATA #IMPLIED StateOrRegion CDATA #IMPLIED
PostalCode CDATA #IMPLIED Country CDATA #IMPLIED
LegalLocation (True | False) 'False' >

Атрибуты:

xml:lang Определяет язык, используемый атрибутами в этом элементе. Смотри раздел 3.8.
AddressLine1 Первая строка почтового адреса, напр.,"The Meadows"
AddressLine2 Вторая строка почтового адреса. напр.,"Sandy Lane"
CityOrTown Город в адресе, напр.,"Москва"
StateOrRegion Штат или область в пределах страны, где находится город, напр., "Зюзино"
PostalCode Код, известный как, например почтовый код или zip-код, который обычно используется почтовыми организациями для организации эффективной доставки, напр.,"113303"
Country Страна адреса, напр.,"RU"
LegalLocation Идентифицирует, является ли адрес зарегистрированным адресом организации. По крайней мере один адрес организации должен соответствовать значению “истина” в противном случае торговой ролью является Покупатель или DeliverTo.



7.7. Компонент списка видов платежей

Компоненты списка видов платежа содержатся в блоке опций торгового протокола (смотри раздел 8.1) транзакции IOTP. Они содержат список:

  • виды платежа (смотри также раздел 11.1),
  • суммы, которые должны быть заплачены в валюте, которую выбрал или предложил Продавец,
  • платежные протоколы, которые могут использоваться для реализации заданного вида платежа,
  • сетевые позиции Кассиров, которые воспринимают платеж в рамках платежного протокола.
Определение компонента списка видов платежа представлено ниже.

<!ELEMENT BrandList (Brand+, ProtocolAmount+, CurrencyAmount+, PayProtocol+)>

<!ATTLIST BrandList ID ID #REQUIRED

xml:lang NMTOKEN #REQUIREDShortDesc CDATA #REQUIRED

PayDirection (Debit | Credit) #REQUIRED>

Атрибуты:

ID Идентификатор, который однозначно определяет компонент списка видов платежа транзакции IOTP.
xml:lang Определяет язык, использованный атрибутами или дочерними элементами в пределах данного компонента, если только его значение не переписано атрибутом xml:lang дочернего элемента. Смотри раздел 3.8.
ShortDesc Текстовое описание на языке, заданном атрибутом xml:Lang, характеризующее цели списка видов платежа. Эта информация должна быть отображена у получателя списка видов платежа для того чтобы помочь сделать правильный выбор. Это привлекательно, так как позволяет Покупателю выяснить цели предлагаемого списка видов платежа, если транзакция предполагает несколько платежей.
PayDirection Индицирует направление платежа для выбранного вида. Возможные значения:
  • Дебит. Отправитель блока платежного запроса (напр., покупатель), к которому имеет отношение список видов платежа, произведет платеж кассиру.
  • Кредит. Отправитель блока платежного запроса к которому имеет отношение список видов платежа, получит платеж от кассира.
Cодержимое:

Brand Описывает вид платежа (Brand). Последовательность элементов Brand (смотри раздел 7.7.1) в списке видов плптежа не определяет каких-либо преоритетов. Рекомендуется, чтобы программа, которая обрабатывает этот список видов платежа представляла их в порядке предпочтения получателя.
ProtocolAmount Это связывает конкретный вид платежа с:
  • видами валюты и суммами в элементах CurrencyAmount, которые могут использоватьсясовместно с видами платежа, и
  • Платежными протоколами и Кассирами, которые могут использоваться с этими видами валюты и суммами для конкретного вида платежа.
CurrencyAmount Содержит код валюты и сумму платежа;
PayProtocol Содержит информацию о платежном протоколе и Кассире, которые могут использовать данный вид платежа.
Отношения между элементами, которые образуют содержание списка видов платежа проиллюстрированы на Рисунок .15.



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