SDKでカード決済を分割
DEUNA Payment WidgetまたはElementsを使用して、サポートされているSDKで2つのカードによる分割決済を設定および実行します。
カード分割決済により、顧客はサポートされているDEUNA環境で、1つの注文を複数のカードに分割できます。現在の公開SDKの例では、2つのカードを構成します。 behavior.paymentMethods.creditCard.splitPayments.maxCards.
チェックアウトで Split Payments を確認する#
次のデモは、顧客が DEUNA チェックアウト エクスペリエンスで 1 つの注文を 2 枚のカードに分割する様子を示しています。
視覚的な説明のためにデモを使用してください。バックエンドは、フルフィルメントの前にすべての試行を調整し、注文全体の状態を検証する必要があります。
決済フロー#
フロー図
01 · order
1つの注文を作成
合計と通貨をバックエンドで authoritative に保つ。
02 · widget
2つのカードを有効にする
分割動作をPayment WidgetまたはElementsに渡す
03 · customer
割り当てと送信
このエクスペリエンスは、金額を検証し、構成されたカードを処理します。
04 · backend
すべての試行を再調整
必要な最終状態に達するまで、決済は完了しません。
動作を有効にする#
await DeunaSDK.initPaymentWidget({
orderToken,
behavior: {
paymentMethods: {
creditCard: {
splitPayments: {maxCards: 2},
},
},
},
callbacks,
});await deunaSDK.initPaymentWidget({
orderToken,
mode: 'modal',
behavior: {
paymentMethods: {
creditCard: {
splitPayments: {maxCards: 2},
},
},
},
callbacks,
});let behavior: Json = [
"paymentMethods": [
"creditCard": [
"splitPayments": ["maxCards": 2]
]
]
]
deunaSDK.initPaymentWidget(
orderToken: orderToken,
callbacks: callbacks,
behavior: behavior
)val behavior: Json = mapOf(
"paymentMethods" to mapOf(
"creditCard" to mapOf(
"splitPayments" to mapOf("maxCards" to 2)
)
)
)
deunaSDK.initPaymentWidget(
context = this,
orderToken = orderToken,
callbacks = callbacks,
behavior = behavior
)WebとReact Nativeタイプは、動作オブジェクトを記述します。iOSとAndroidは、JSONと同じ公開形状を受け入れます。キーのスペルとネストを正確に保持してください。
イベントとコールバック#
| 信号 | 使用する |
|---|---|
onCardBinDetected / onBinDetected | 生のカードデータを収集することなく、アクティブなカードのBINを検出します。 |
onInstallmentSelected | 選択したプランオプションを、構成中のカードに関連付けます。 |
paymentMethodSplitPayments | ネイティブなElementsイベントは、分割決済のパスを示します。 |
paymentProcessing / onPaymentProcessing | 組み合わせ操作が実行中の間、重複操作をロックします。 |
purchase, purchaseError, purchaseRejected | クライアントライフサイクルのみ。常に注文と試行を再調整します。 |
クライアントイベントを合計して、財務結果を再構築しないでください。現在のバックエンドの注文とトランザクションレコードを使用してください。
失敗と復旧#
カード分割決済により、部分的な運用結果が生じる可能性があります。1つの試行が別の状態になる可能性があります。機能を使用する前に、復旧パスを設計してください。
| シナリオ | 商社の動作 |
|---|---|
| 最初のカードが成功する前に失敗 | 現在の注文の状態が、別の試行を許可する場合にのみ、注文を維持します。 |
| 1つのカードが成功し、もう1つのカードが失敗 | 両方の試行を再調整し、新しいフル注文の決済を盲目的に送信しないでください。 |
| 顧客がフロー中に終了 | 決済オプションを復元する前に、注文を取得します。 |
| クライアントが接続を失う | 結果を不明と扱い、バックエンドからの応答を待ちます。 |
| 重複タップまたはリトライ | 既存の操作と、文書化されたアイデンポテンツ戦略を使用します。 |
テストマトリックス#
- 正確な割り当てとサポートされている通貨精度で2つのカードを使用
- 有効なカードで分割払いを使用し、無効なカードでは分割払いを使用しません。
- 最初のカードと2番目のカードでそれぞれ拒否
- カード間のバックグラウンド、リフレッシュ、またはネットワーク喪失。
- 1つのカードを入力後、顧客によるアカウントの停止。
- 遅い認証と繰り返し送信操作。
- 最終的なウェブフックとAPIの状態が、顧客の確認画面と一致すること。