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 数値

必須 加盟店の国コード。たとえば、米国は 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 に準拠した Track 2 データ要素(開始シンボル、終了シンボル、LRC を除く)。PAN、フィールド区切り文字(

D)、有効期限(YYMM)、サービスコード、任意データ、およびオプションのパディング。 パディングを除去した PAN(存在する場合)。 par

決済ネットワークから提供される場合の、決済アカウント参照(PAR)。

expirationDate

カードの有効期限。

cryptogramDataType

返される暗号化データの形式(UCAF または DE55)。

cryptogramDataType

エラーを処理する

もし generateRemotePayment() がエラーをスローした場合は、支払い失敗として扱います。UI 状態をリセットし、エンドユーザーを次に取るべき最善のアクションへ誘導してください。

エラー
説明

deviceEnvironmentUnsafe

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

sessionInProgress

別の支払いセッションがまだ実行中です。

invalidInputData

次のいずれかのフィールドが RemotePaymentInputData 不足しているか、形式が正しくありません。

noPaymentKeys

この取引で使用できる支払いキーがありません。

cardNotSupported

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

cardNotActive

デジタルカードが有効ではありません。

noDefaultCard

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

clientError

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

authenticationKeyInvalidated

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

biometricNotEnrolled

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

各エラーには、失敗の内容を説明するメッセージを含めることができます。トラブルシューティングやサポート診断に使用してください。

完全な実装例

このコードサンプルを使って、前の手順がどのように組み合わさるかを理解してください。

最終更新

役に立ちましたか?