SDK イベント
Web、iOS、Android、および React Native で DEUNA SDK のライフサイクルイベントを監視し、分析イベントを決済状態として扱わない。
このページで
SDK イベントは、顧客とウィジェットが何をしているかを記述します。これらは分析、診断、およびインターフェースの変更に使用します。直ちに UI で成功およびエラーコールバックを使用し、バックエンドで最終的な注文状態を確認してから処理してください。
イベントライフサイクル#
プラットフォーム経由での登録#
await DeunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onEventDispatch: (event, payload) => {
analytics.track(`deuna.${event}`, sanitize(payload));
},
},
});await deunaSDK.initPaymentWidget({
orderToken,
callbacks: {
onEventDispatch: (event, payload) => {
analytics.track(`deuna.${event}`, sanitize(payload));
},
},
});let callbacks = PaymentWidgetCallbacks()
callbacks.onEventDispatch = { event, payload in
Analytics.track("deuna.\(event.rawValue)", sanitize(payload))
}
deunaSDK.initPaymentWidget(
orderToken: orderToken,
callbacks: callbacks
)val callbacks = PaymentWidgetCallbacks().apply {
onEventDispatch = { event, payload ->
analytics.track("deuna.${event.value}", sanitize(payload))
}
}
deunaSDK.initPaymentWidget(
context = this,
orderToken = orderToken,
callbacks = callbacks
)WebとReact Nativeのコールバックは、イベント名を文字列として公開します。ネイティブSDKは、型付きの値を公開します。新しいイベントがリリースされた際に、既存の分析アダプターを壊さないように、デフォルトブランチを維持してください。 CheckoutEvent または ElementsEvent 安定した統合の確認
推奨される利用方法#
存在する場合、専用のコールバックを使用してください。これにより、生のイベントストリームよりも、より小さく、型付きの契約を提供します。
| 信号 | Web | iOS | Android | React Native | 推奨される利用 |
|---|---|---|---|---|---|
onSuccess | はい | はい | はい | はい | 体験を終了または置き換え、最終状態を確認してください。 |
onError | はい | はい | はい | はい | エラー情報から、再試行または復旧手順を生成します。 |
onClosed | はい | はい | はい | はい | 顧客またはSDKの終了後に、商人のUIを復元します。 |
onCardBinDetected | 決済 + 要素 | 決済 + 要素 | 決済 + 要素 | 決済 + 要素 | カード固有のオファーまたはスタイルを再計算します。 |
onInstallmentSelected | 決済 + 要素 | 決済 + 要素 | 決済 + 要素 | 決済 + 要素 | カードデータを保存せずに、選択されたプランの識別子を記録します。 |
onPaymentProcessing | 決済 + クーポン | 決済 | 決済 | 決済 + クーポン | 重複送信アクションを無効化します。 |
onResize | はい | 埋め込みライフサイクル | 埋め込みライフサイクル | はい | 埋め込みコンテナをコンテンツに合わせて配置します。 |
参照 SDKからのレスポンス ペイロードとエラー処理のため。
高価値ライフサイクルイベント#
| イベント | 意味 | 体験に関するメモ |
|---|---|---|
checkoutStarted | チェックアウト体験が開始または初期化されました。 | Webおよびネイティブチェックアウトストリームで利用可能。 |
paymentMethodsStarted | 決済方法のステップがアクティブになりました。 | ネイティブおよびReact Nativeチェックアウトストリーム。 |
paymentMethodsSelected | 顧客が決済方法を選択しました。 | Webおよびネイティブチェックアウトストリーム。 |
onBinDetected | カードBINが検出されました。 | 推奨 onCardBinDetected 利用可能な場合。 |
onInstallmentSelected | 顧客が分割払いオプションを選択しました。 | 専用のコールバックを使用することを推奨します。 |
paymentProcessing | 送信処理中 | 重複アクションを無効化し、承認を推測しない。 |
purchase | ウィジェットが正常な購入インタラクションを報告しました。 | 使用する onSuccess、その後バックエンドで注文を確認します。 |
purchaseError | 購入インタラクションが失敗しました。 | 使用する onError 正規化されたエラー情報を受け取るために。 |
purchaseRejected | ネイティブチェックアウトが拒否を報告しました。 | ネイティブおよびReact Nativeストリームで利用可能、現在のWebのenumには非対応。 |
vaultSaveSuccess | Elementsが保存された資格情報を報告しました。 | WebおよびネイティブのElementsフロー。 |
vaultSaveError | Elementsが資格情報を保存できませんでした。 | ペイロードを体験固有として扱います。 |
linkClose | ホストされた体験が終了を要求しました。 | SDKも onClosed. |
現在のイベントカタログを呼び出します。#
これらの名前は、維持されているSDKのソースに含まれる公開のenumです。ペイロードオブジェクトは意図的に生の形式で提供されており、そのフィールドは経験やリリースによって異なります。ペイロードフィールドを使用する際は、専用のコールバックがそれを文書化していることを確認してください。
Web SDK
checkoutStarted, paymentMethodsEntered, onBinDetected, purchase, paymentProcessing, loginStarted, paymentMethodsSelected, loginOtpStarted, purchaseError, onInstallmentSelected, linkClose, checkoutReady, vaultSaveSuccess, vaultSaveError, checkoutFailed, openExternalPopup, closeExternalPopup, errorApmMissingReference.
React Native · チェックアウト
custom, purchase, purchaseError, linkClose, linkFailed, purchaseRejected, paymentProcessing, paymentMethodsAddCard, paymentMethodsCardExpirationDateInitiated, paymentMethodsCardNameEntered, apmSuccess, apmSuccessful, changeAddress, changeCart, paymentClick, apmClickRedirect, paymentMethodsCardNumberInitiated, paymentMethodsCardNumberEntered, paymentMethodsEntered, checkoutStarted, linkStarted, paymentMethodsStarted, paymentMethodsSelected, adBlock, paymentMethods3dsInitiated, pointsToWinStarted, paymentMethodsCardSecurityCodeInitiated, paymentMethodsCardSecurityCodeEntered, paymentMethodsCardExpirationDateEntered, paymentMethodsCardNameInitiated, paymentMethodsNotAvailable, paymentMethodsShowMore, paymentMethodsShowMyCards, benefitsStarted, donationsStarted, donationsUsed, onBinDetected, onInstallmentSelected, onDownloadVoucher, errorApmMissingReference.
React Native · Elements
vaultClosed, vaultProcessing, vaultSaveClick, vaultStarted, vaultFailed, cardSuccessfullyCreated, changeAddress, changeCart, vaultSaveError, vaultSaveSuccess, vaultClickRedirect3DS, cardCreationError, paymentMethodsCardIdentityNumberInitiated, paymentMethodsCardIdentityNumberEntered, paymentMethodsCardNameInitiated, paymentMethodsCardNameEntered, paymentMethodsCardSecurityCodeInitiated, paymentMethodsCardSecurityCodeEntered, paymentMethodsCardExpirationDateEntered, paymentMethodsCardExpirationDateInitiated, paymentMethodsCardNumberEntered, paymentMethodsCardNumberInitiated, paymentMethodsEntered, paymentMethodsStarted.
iOSおよびAndroid · チェックアウト
ネイティブなカタログには、各プラットフォームから公開されているチェックアウト、ログイン、請求、配送、ユーザー情報、APM、クーポン、寄付、カード入力、分割払い、処理、購入、拒否、および失敗イベントが含まれています。Androidはさらに、 apmFailed, couponStarted, linkCriticalError, および userInfoPhoneInitiatediOSは、次のように公開しています。 customSDKに同梱されているenumを使用してください。ネイティブな2つのカタログがバイト単位で完全に一致することを前提としないでください。
iOSおよびAndroid · Elements
両方のネイティブSDKは、カード入力、BIN、分割払い、チェックアウト、Vaultライフサイクル、およびクレデンシャル保存イベントを公開しています。現在のカタログには、 paymentMethodSplitPayments, vaultClickRedirect3DS, vaultProcessing, vaultSaveClick, vaultSaveError, および vaultSaveSuccess.
分析とプライバシーに関する情報#
- 第三者分析先への転送前に、イベント名を許可リストに含めてください。
- 注文、顧客、支払い方法、およびプロバイダーのメタデータを削除します。ただし、データ契約がそれを許可している場合は、例外として扱ってください。
- PAN、セキュリティコード、ウォレットトークン、アクセストークン、または完全な生のペイロードは記録しないでください。
- アプリのバージョン、SDKのバージョン、環境、および商家の固有の相関IDを、診断のために含めてください。
- 不明なイベント名を、互換性のある信号として扱い、致命的なエラーとして扱わないでください。
公開ソース契約#
上記のカタログは、維持されている公開の定義リストからコピーするのではなく、維持されている公開の定義リストと照合されます。
- Web
EventType - React Native
CheckoutEventTypeおよびElementsEventType - iOS
CheckoutEventおよびElementsEvent - Android
CheckoutEventおよびElementsEvent