Welcome to our new developer portal! Use the "Ask" button to chat with our AI Agent.
For the complete documentation index, see llms.txt. This page is also available as Markdown.

DSRPリモート決済を実装する

概要

Mastercard DSRP リモート決済を使用して、リモート受付(例:eコマース)のための支払いデータを生成します。

このフローでは、デジタルウォレットアプリが支払いデータを生成します。その後、そのデータを承認のためにマーチャントシステムや決済ゲートウェイに渡します。

DSRP リモート決済を実装する前に、次を完了してください トークン化。参照してください カードをトークン化する.

SDK統合

前提条件を確認する

次を使用してデジタルカードが DSRP リモート決済をサポートしていることを確認します DigitalCard.Details.isPaymentTypeSupported() 次のパラメータで PaymentType.dsrp.

func checkCardSupportForDSRP(card: DigitalCard) async throws -> Bool {
    return try await card.details.isPaymentTypeSupported(.dsrp)
}

DSRP 支払いの入力データを作成する

DSRP 支払いデータを生成する前に、入力データを次で提供する必要があります RemotePaymentInputData.

RemotePaymentSession.RemotePaymentInputData は次のフィールドを持ちます:

入力データ
形式
説明

amount

文字列

数値、少数単位

必須 小数点区切りなしの少数単位での取引金額。例えば、119.00 USD は 11900 (統合が固定長を要求する場合は左パディング)。

currencyCode

文字列

3桁の ISO 4217 数値コード

必須 取引通貨コード。例えば、USD は 840.

countryCode

文字列

3桁の ISO 3166-1 数値コード

必須 マーチャントの国コード。例えば、United States は 840.

transactionType

列挙型

.purchase

必須 金融取引の種類。DSRP 支払いでは、を使用します .purchase.

cryptogramType

列挙型

.ucaf または .de55

必須 SDK によって返されるクリプトグラムデータの形式。

unpredictableNumber

文字列

数値

必須 マーチャントまたは決済ゲートウェイによって生成されたランダム番号。

DSRP 支払いデータを生成する

デジタルウォレットアプリ内で、次を呼び出します RemotePaymentSession.generateRemotePayment().

この API はエラーをスローする可能性があります。参照: エラーを処理する.

成功すると、API は次を返します RemotePaymentOutputData 次のフィールドを持ちます:

パラメータ
説明

cryptogramData

フォーマットされた応答を含むバイト配列。これはマーチャントが DE-55 を埋めるための UCAF または TLV データのいずれかです。

pan

任意の F パディングが削除された PAN(存在する場合)。

panSequenceNumber

使用されたカードの PAN シーケンス番号(PSN)。

track2EquivalentData

ISO/IEC 7813 に準拠したトラック2 データ要素(開始セントネル、終了セントネル、LRC を除く):PAN、フィールドセパレータ(D)、有効期限(YYMM)、サービスコード、任意データ、およびオプションの F パディング。

par

支払い口座参照(PAR)、決済ネットワークが提供する場合。

expirationDate

カードの有効期限日。

cryptogramDataType

返されるクリプトグラムの形式(UCAF または DE55)。

エラーを処理する

もし generateRemotePayment() がエラーをスローした場合、支払いは失敗とみなしてください。UI 状態をリセットし、エンドユーザーに次に取るべき最良の行動を案内してください。

エラー
説明

deviceEnvironmentUnsafe

デバイスがセキュリティ要件を満たしていません。

sessionInProgress

別の決済セッションがまだ実行中です。

invalidInputData

の一つ以上のフィールドが欠落しているか形式が不正です。 RemotePaymentInputData は欠落しているか形式が不正です。

noPaymentKeys

取引に利用できる支払い鍵がありません。

cardNotSupported

デジタルカードは DSRP リモート決済をサポートしていません。

cardNotActive

デジタルカードは有効になっていません。

noDefaultCard

デフォルトカードが設定されていません。

clientError

リモート決済フローはクライアント側のエラー(例:ネットワーク問題)により失敗しました。

authenticationKeyInvalidated

デバイスのパスコードが無効化され、セキュアストレージが消去されました。

biometricNotEnrolled

生体認証が利用できないか登録されていません。

各エラーには失敗を説明するメッセージが含まれる場合があります。トラブルシューティングやサポート診断にそれを使用してください。

完全な実装例

このコードサンプルを使用して、前の手順がどのように結びつくかを理解してください。

最終更新

役に立ちましたか?