セッションを使用することで、要求内の異なる部分が、支払フローの異なるポイントまたは異なるチャネル経由で取得され、より高度なインテグレーションが可能になります。たとえば、Hosted Sessionとウォレット (Masterpass など) の両方の支払フローがセッションを使用して、支払者の機密認証情報を収集して保存します。これにより、サーバ上で支払詳細を処理または保存しないので、PCI コンプライアンスと実装の費用が削減されます。
セッションの操作
セッションの作成
最初のステップとしてセッションを作成する必要があります。その後、セッションに保存するリクエストフィールドと値を更新できます。
セッションは以下のようにして作成できます。
セッションの更新
セッション内のリクエストフィールドは、以下のようにして追加または更新できます。
セッションからフィールドを削除することはできませんが、既存のフィールドの値を上書きすることができます。
セッションの使用
リクエストフィールドと値を含むセッションは、次のいずれかの操作で使用できます。
支払いまたはトークン化の操作を開始する前に、Retrieve Session 操作を使用してセッション詳細を取得し、セッションの内容を確認することをお勧めします。
同じセッションを使用して複数の操作 (Pay と Tokenization など) を実行できます。これは、支払いを実行し、カードの詳細を保存する場合に便利です。セッションを参照する操作の <<webServicesIntegration>> のバージョンが、セッション内で要求フィールドを更新したり追加したりするのに使用される <<webServicesIntegration>> バージョンと一致する必要があることに注意してください。
セッションを参照する操作(Open Wallet
、Update Session
、Update Session From Wallet
を除く)を開始すると、セッションにカードのセキュリティコードが格納されている場合はそのセキュリティコードは削除されます。これは PCI 規制に準拠するために必要です。後で使用するためにカードの詳細を保存する場合は、セッションを使用して Tokenization 操作を実行することでそれを行うことができます。
優先ルール
操作要求を送信する際、セッションに対して保存された要求フィールドと値は、直接要求に含めなかった場合のみ使用されます。
セッションからのフィールドの取得
セッション ID を提供することで、セッション内に保存されている要求フィールドと値を取得できます。
Retrieve Session API リファレンス[REST][NVP]
セッションの内容に基づいたビジネス上の意思決定
セッションから取得したデータに基づいてビジネス上の意思決定を行う場合、セッションのオプティミスティックロック機能を使用する必要があります。これにより、意思決定を行うために使用するデータが、要求操作を処理するのに使用されるデータと同じになります。
オプティミスティックロック機能を使用するには、次の点に留意する必要があります。
Retrieve Session
操作を使用してセッションの内容を安全に取得します。
- 返されたセッションの内容の
session.version
の値を記録します。
- 返されたセッションの内容に基づいてビジネス上の意思決定を行います。
- ゲートウェイに要求操作を送信する場合、
session.version
とともにセッション ID も操作の一部として渡します。
session.version
の記録以降にセッションの内容が変更された場合、ゲートウェイは操作を拒否し、error.cause=INVALID_REQUEST
を返します。
セッションの内容に基づいたビジネス上の意思決定の例としては、次のものが含まれます。
- 支払者が提供するカードのタイプに基づいて料金上乗せの金額を算出します。
- 支払人が提供する発送先住所に基づいて送料の金額を算出します。
Retrieve Session API リファレンス[REST][NVP]
Pay[REST][NVP]