18. プロバイダパンチアウトトランザクション

プロバイダパンチアウトを使用すると、アプリケーションはリモートアプリケーションにパンチアウトすることができ、リモートアプリケーションはクレジットカードの検証、シングルログイン、自己登録などのサービスをパンチアウトしたアプリケーションに提供できます。

18.1 メッセージフロー
18.2 ProviderSetupRequest ドキュメント

18.2.1 Header
18.2.2 Request
18.2.2.1 依頼
18.2.2.2 ProviderSetupRequest
18.2.2.3 OriginatorCookie
18.2.2.4 BrowserFormPost URL
18.2.2.5 SelectedService
18.2.2.6 Extrinsic
18.2.3 例

18.3 ProviderSetupResponse ドキュメント

18.3.1 Response
18.3.2 Status
18.3.3 ProviderSetupResponse
18.3.4 StartPage URL
18.3.5 例

18.4 ProviderDoneMessage ドキュメント

18.4.1 Header
18.4.2 Message
18.4.3 OriginatorCookie
18.4.4 ReturnData
18.4.5 ReturnValue
18.4.5.1 名称
18.4.6 例

18.1 メッセージフロー

cXML ドキュメントでは、プロバイダパンチアウト時に発信元およびプロバイダが通信を行うための方法が提供されます。これらの cXML ドキュメントは、ProviderSetupRequest、ProviderSetupResponse、および ProviderDoneMessage であり、発信元アプリケーションとサービスプロバイダ間の対話を処理するように特別に調整されています。これらのドキュメントで、提供されるサービス、セッション情報、発信元の返信先 URL、および状況や補足に関する情報などの詳細を伝達します。次の図に、プロバイダパンチアウトトランザクションにおける cXML メッセージのフローを示します。

図 16: プロバイダパンチアウトトランザクションのメッセージフロー

プロバイダパンチアウトを開始するには、発信元アプリケーションから ProviderSetupRequest ドキュメントをプロバイダに送信します。このドキュメントには、ユーザーとユーザー組織の認証情報、返信先 URL、およびプロバイダから要求されたサービスが含まれます。Request を承認するために、プロバイダは、ユーザーがリダイレクトする開始ページの URLを含む ProviderSetupResponse ドキュメントを発信元アプリケーションに送信します。ユーザーが処理を終了すると、プロバイダは、ユーザーがプロバイダサイトでセッションを完了した旨を示す ProviderDoneMessage ドキュメントを発信元アプリケーションに送信します。

18.2 ProviderSetupRequest ドキュメント

ProviderSetupRequest ドキュメントでは、プロバイダパンチアウトトランザクションが開始され、メンバ組織およびユーザーに関する情報、返信先 URL、要求されたサービスなどの複数の項目がプロバイダに伝達されます。このドキュメントには、Header 要素と Request 要素の 2 つのセクションがあります。Header には、ユーザーと要求側の組織に関する認証情報が含まれ、Request には、プロバイダパンチアウトを開始するために必要な情報を含む実際のProviderSetupRequest 要素が含まれます。

18.2.1 Header

ドキュメントの Header 部分には、アドレス指定と認証情報を定義します。次の例は、ProviderSetupRequest ドキュメントのヘッダー部分です。UserAgent 要素には、要求を行うアプリケーションとそのバージョンに対応する文字列であるプロバイダの電子署名が含まれます。たとえば、”www.triton.com” や “Procurement Application 7.0” です。From と To に定義する 2 つの組織は、共通の認証フォーマットと権限に合意している必要があります。

この Header 要素は、各メッセージタイプのヘッダーと類似しています。メッセージのヘッダーを記述する方法については、「Header [28 ページ]」を参照してください。

18.2.2 Request

このドキュメントの Request のセクションには ProviderSetupRequest が含まれており、この要素には発信元からのトランザクション情報が複数項目定義できます。これらは、発信元のセッションをトラッキングするためのクッキー、返信先URL、プロバイダから要求されたサービスのタイプ、およびサービスのタイプとプロバイダに付随するその他の情報などです。

次の表では、プロバイダパンチアウトメッセージの Request セクションの構造に関するガイドラインを示しています。

要素インスタンス親要素子要素属性
ProviderSetupRequest1RequestOriginatorCookie, BrowserFormPost, SelectedService, Extrinsicなし
OriginatorCookie1ProviderSetupRequest, ProviderDoneMessageなしなし
BrowserFormPost0 または 1ProviderSetupRequestURLなし
URL0 または 1BrowserFormPost, Followupなしなし
SelectedService1ProviderSetupRequestなしなし
Extrinsic任意ProviderSetupRequest可変name

Header セクションの要素は、次のとおりです。

18.2.2.1 依頼

プロバイダパンチアウトトランザクション開始の要求を定義します。この場合は、ProviderSetupRequest 要素が含まれます。

18.2.2.2 ProviderSetupRequest

発信元アプリケーションからプロバイダにトランザクションを開始するよう求める Request です。

18.2.2.3 OriginatorCookie

OriginatorCookie は、要求者側のサイトでのユーザーセッションと結合して、後で ProviderDoneMessage とともに要求者に返されます。これによって、ユーザーが発信元アプリケーションの同セッションに戻ることができるワンタイムキーが実装されます。

18.2.2.4 BrowserFormPost URL

発信元アプリケーションは BrowserFormPost で所在地を示し、対話型セッションの最後にプロバイダが [完了] ボタンや Status などの情報を表示できるようにします。この要素を使用することにより、各セッションの最後にプロバイダから ProviderDoneMessage ドキュメントが送信されます。URL には、ユーザーがプロバイダのサイトでセッションを終了したときに戻る要求者側のサイトの所在地を定義します。

18.2.2.5 SelectedService

発信元アプリケーションによって要求され、プロバイダによって提供されるサービスを指定します。

18.2.2.6 Extrinsic

プロバイダパンチアウトの Extrinsic は、プロバイダが提供するサービスのタイプによって異なります。特定のProviderSetupRequest については、該当するマニュアルを参照してください。

注記
XML の内容、要素、およびそれらの属性は、エスケープされた cXML DTD または XML で定義されている必要があります。

18.2.3 例

一般的な ProviderSetupRequest ドキュメントの例として、Triton Bank というマーケットプレイスメンバからマーケットプレイスへの Request を示します。

18.3 ProviderSetupResponse ドキュメント

ProviderSetupResponse ドキュメントでは、Request の結果が発信元アプリケーションに通知されます。Request の結果には、状況および開始ページの情報が含まれます。

次の表は、プロバイダパンチアウトトランザクションの ProviderSetupResponse ドキュメントの構造に関するガイドラインを示しています。

要素インスタンス親要素子要素属性
Response1cXMLStatus, ProviderSetupResponseなし
Status1Responseなしcode、text
ProviderSetupResponse1ResponseStartPageなし
StartPage1ProviderSetupResponseURLなし
URL1StartPageなしなし

18.3.1 Response

Status および ProviderSetupResponse 要素で構成されます。

18.3.2 Status

プロバイダの Request の結果が成功か失敗かについての情報を定義します。Status 要素の内容には、要求者が必要とする任意のデータを含めたり、エラーの詳細を記述したりできます。Status には次の属性があります。

属性説明
code
(必須)
要求の状況コード。このコードは、HTTP 状況コードモデルに準拠します。たとえば、200 は要求が成功したことを示します。
text
(必須)
状況メッセージのテキスト。このテキストは、英語による標準的な文字列で構成され、ユーザーが判読できるログが提供されます。
xml:langプロバイダの Request で使用される言語を指定します。「xml:lang で指定する地域情報 [25 ページ]」を参照してください。

200/OK 状況コードには、データが存在しない場合があります。ただし、500/Internal Server Error 状況コードには、実際の XML 解析エラーまたはアプリケーションエラーを含めることを強く推奨します。このエラーは、一方向のデバッグや相互運用性テストに役立ちます。プロバイダは、状況コードが 200 番台でない限り、ProviderSetupResponse 要素を含めないでください。表示される状況コードの一覧については、「Status [32 ページ]」を参照してください。

18.3.3 ProviderSetupResponse

Request が成功した場合、ProviderSetupResponse 要素が応答ドキュメントに含まれます。この要素には、ユーザーがリダイレクトするべき場所を示す StartPage 要素とその子要素である URL 要素が含まれます。

18.3.4 StartPage URL

この要素内に URL 要素を定義し、そこで指定される URL はブラウザに引き渡され、ProviderSetupRequest 要素で要求されたプロバイダパンチアウトのブラウザセッションを開始します。この URL には、プロバイダ Web サイトでセッションのコンテキストに結合するための十分な状況情報が含まれている必要があります。

18.3.5 例

次の ProviderSetupResponse ドキュメントは、前の ProviderSetupRequest セクションのプロバイダから Triton Bank への返信に含まれます。

18.4 ProviderDoneMessage ドキュメント

ProviderDoneMessage ドキュメントには、発信元アプリケーションがプロバイダサイトで完了した操作について認識するべき、あらゆる情報が含まれています。

18.4.1 Header

ProviderDoneMessage Header セクションは Request および Response メッセージの Header セクションと類似していますが、このメッセージは Form Post を使用して送信されるため、Sender 要素に SharedSecret を含めないでください。UserAgent 要素には、プロバイダの電子署名を定義します。From と To に定義する 2 つの組織は、共通の認証フォーマットと権限に合意している必要があります。

この Header 要素は、各メッセージタイプのヘッダーと類似しています。メッセージのヘッダーを記述する方法については、「Header [28 ページ]」を参照してください。

18.4.2 Message

ドキュメントの Message セクションに、ProviderDoneMessage 要素を含めます。この要素には、発信元アプリケーションによって要求された情報と、発信元アプリケーションのサイトでユーザーがセッションに戻るための情報を定義します。

次の表は、ProviderDoneMessage ドキュメントの Message セクションの構造に関するガイドラインを示しています。

要素インスタンス親要素子要素属性
Message1なしStatus, ProviderDoneMessageなし
Status1Messageなしtext, code
ProviderDoneMessage1MessageOriginatorCookie, ReturnData, ReturnValue, Nameなし
OriginatorCookie1ProviderDoneMessageなしなし
ReturnData任意ProviderDoneMessageReturnValue,Namename
ReturnValue1ProviderSetupRequestなしなし
Name1BrowserFormPost, Followupなしxml:lang

Message セクションの要素は、次のとおりです。

18.4.3 OriginatorCookie

元の ProviderSetupRequest ドキュメントで引き渡された要素と同じ要素です。要求側のアプリケーションが ProviderDoneMessage ドキュメントと以前の ProviderSetupRequest ドキュメントを照合して、ユーザーを正しいセッションに戻すために、この要素はここで返される必要があります。

18.4.4 ReturnData

プロバイダのサイトで完了した操作について、発信元が認識するべき、あらゆる情報を定義します。name 属性で、要求者への ReturnData の種類 (ドメイン) が識別されます。

18.4.5 ReturnValue

発信元アプリケーションによって使用される値です。この値は、プロバイダが提供するサービスのタイプによって異なります。

18.4.5.1 名称

返されるデータの識別子です。ReturnData 要素の内容に関する説明を提供します。値を表示する場合、Name と ReturnValue のセマンティクスは似ていますが、発信元アプリケーションでの用途は異なることに注意してください。

18.4.6 例

プロバイダは、次のような ProviderDoneMessage ドキュメントを送信します。これにより、発信元アプリケーション Triton Bank に、ユーザーがプロバイダサイトでセッションを終了したことが通知されます。