ウォレットの可用性
DEUNA の Web、iOS、Android、および React Native SDK を使用して、Apple Pay および Google Pay の可用性を事前に確認してください。
コール getWalletsAvailable 商社が所有するウォレットボタンを表示する前に、DEUNA によって返された商社設定と、現在のブラウザまたはデバイスの機能を組み合わせてください。
可用性決定#
プラットフォームごとに確認#
const wallets = await DeunaSDK.getWalletsAvailable({
orderToken,
userInfo: {email: 'ada@example.com'},
});
applePayButton.hidden = !wallets.includes('APPLE_PAY');
googlePayButton.hidden = !wallets.includes('GOOGLE_PAY');const wallets = await deunaSDK.getWalletsAvailable({orderToken, userInfo});
setApplePayVisible(wallets.includes('apple_pay'));
setGooglePayVisible(wallets.includes('google_pay'));deunaSDK.getWalletsAvailable(
params: GetWalletsAvailableParams(orderToken: orderToken, userInfo: userInfo)
) { wallets, error in
applePayButton.isHidden = !wallets.contains(.applePay)
if let error { showWalletRecovery(error) }
}val params = GetWalletsAvailableParams(orderToken = orderToken, userInfo = userInfo)
deunaSDK.getWalletsAvailable(this, params) { wallets, error ->
googlePayButton.isVisible = wallets.contains(WalletProvider.GOOGLE_PAY)
error?.let(::showWalletRecovery)
}パラメータモード#
| 呼び出し形式 | 使用する |
|---|---|
getWalletsAvailable() | 注文固有のトランザクション情報なしで、設定されたウォレットを解決します。 |
{orderToken, userInfo} | 注文コンテキストを使用して、顧客がクリックする前に、商人の認証情報を解決します。 ウォレットでのチェックアウトに推奨。 |
明示的な APPLE_PAY / GOOGLE_PAY ウォレット設定 | 承認された認証情報をDEUNAの vault エンドポイントから取得するのではなく、直接提供する高度な統合。 |
注文を事前に提供することは、特にApple Payの場合に重要です。 その後、ブラウザの顧客が操作するウィンドウ内で、ボタンハンドラがすぐに処理を開始できます。
ボタンから起動#
applePayButton.addEventListener('click', async () => {
await DeunaSDK.initElements({
orderToken,
userInfo,
types: [{name: 'APPLE_PAY'}],
callbacks: {
onSuccess: verifyCredentialOrOrder,
onError: showWalletRecovery,
onClosed: restorePaymentMethods,
},
});
});使用する GOOGLE_PAY Google Pay 用。クリックまたはタップハンドラ内で直接実装してください。ネイティブシートを開く前に、タイマー、関連のない await、またはバックグラウンドコールバックを使用しないでください。
キャッシュとリフレッシュ#
現在の SDK は、解決されたプロバイダと認証情報をキャッシュすることで、後続のウォレットの起動を高速化します。 Web SDK では、以下のコードを作成してください。 DeunaSDK.newInstance() ページが、SDKの状態を隔離する必要がある場合に。モバイルアプリケーションでは、アクティブな統合ライフサイクル全体で、1つの初期化されたSDKインスタンスを保持します。
顧客が異なる条件の注文に変更した場合、または、異なる商社コンテキストに切り替えた場合、または新しいアプリケーションセッションを開始した場合に、再度確認してください。ウォレットを表示するのは、以前の注文の利用状況のためではなく、現在の状況に基づいて行ってください。
ウォレットが存在しない理由#
商社または接続が有効ではありません
アカウントで、ウォレット接続、環境、国、通貨、および注文が有効であることを確認してください。サンドボックスと本番環境の認証情報は異なります。
現在のブラウザまたはデバイスはウォレットを使用できません
Apple Payには、有効なAppleデバイス、ブラウザ、ウォレット設定、および商社ドメインの構成が必要です。Google Payには、有効なブラウザまたはAndroidデバイスと、サポートされているGoogleサービスが必要です。
「availability call」がエラーまたは空のリストを返す
初期化、公開APIキー、環境、ネットワークアクセス、および注文トークンの確認。 空のリストを「ウォレット制御の表示を抑制」として扱い、チェックを回避する指示として解釈しない。
ウォレットが表示されない、または表示に時間がかかる
「availability」をタップする前に実行し、結果をSDKでキャッシュし、 initElements ウォレットボタンのハンドラから直接呼び出す。
UXとアクセシビリティ#
- プロバイダーが承認したボタンのアセット、ラベル、サイズ、およびコントラストルールを使用する。
- 利用できないウォレットを表示するのではなく、無効なボタンを非表示にする。
- ウォレットが開けない場合に、標準の支払い方法を表示する。
- エラーを通知し、ウォレットボタンに戻る。
- デバイスの回転、大きなテキスト、スクリーンリーダー、キーボード操作、および狭い埋め込みレイアウトのテスト。