Quick Start
モバイル決済の統合を4つの簡単なステップで開始しましょう
Platform Examples
Android、iOS、React Native、Flutter 向けの完全なコード例
Dodo Payments は、Android、iOS、React Native、
Flutter 向けの公式 checkout SDK を提供しています。それぞれ、以下で説明するパターン(checkout
URL を開き、戻り値を取得し、結果を解析する処理)を、放棄されたセッションの復旧機能を組み込んだ単一の型付き
start(...)
呼び出しとしてラップします。手動の WebView は、いずれもご利用の技術スタックに適合しない場合にのみ使用してください。前提条件
Dodo Payments をモバイルアプリに統合する前に、以下を準備してください。- Dodo Payments アカウント: API access が有効なアクティブな merchant account
- API Credentials: ダッシュボードから取得した API key と webhook secret key
- Mobile App Project: Android、iOS、React Native、または Flutter application
- Backend Server: checkout session の作成を安全に処理するためのサーバー
Integration Workflow
モバイル統合では、backend が API calls を処理し、mobile app が user experience を管理する、安全な 4 段階のプロセスに従います。1
Backend: Create Checkout Session
Checkout Session API Docs
Node.js、Python などを使用して backend で checkout session を作成する方法を説明します。完全な例と parameter references については、専用の Checkout Sessions API documentation を参照してください。
Security: checkout sessions は必ず backend server で作成し、mobile app では作成しないでください。これにより API keys が保護され、適切な validation が確実に行われます。
2
Mobile: Get Checkout URL
mobile app は backend を呼び出して checkout URL を取得します。この request には、サインイン済みユーザー自身の session token を使用して authenticate してください。
- iOS (Swift)
- Android (Kotlin)
- React Native (JavaScript)
- Flutter (Dart)
Security: mobile apps は backend とのみ通信し、Dodo Payments API と直接通信することはありません。
3
Mobile: Open Checkout in Browser
決済処理のため、secure な in-app browser で checkout URL を開きます。
または、お使いの platform 向けの公式 checkout SDK を使って、手動設定を完全に省略できます。
Pick your mobile SDK
Android、iOS、React Native、Flutter 向けのインストール手順と設定方法。
4
Backend: Handle Payment Completion
webhooks と redirect URLs を使用して payment completion を処理し、payment status を確認します。
SDK を選択
すべての mobile SDK は同じ contract を公開します。1 回のstart(...) 呼び出しで、platform の native browser surface にある Dodo の
hosted checkout を開き、CheckoutResult を型付きで返します。その status は succeeded、failed、cancelled、
pending、または expired です。いずれも API key を保持したり Dodo
Payments API を呼び出したりすることはなく、4 つすべてが abandoned-session recovery をサポートします。
Android
com.dodopayments.api:checkout-android は Chrome Custom Tab を開きます。minSdk 23 以降が必要です。iOS
dodopayments-mobile-sdk-ios は SFSafariViewController を開きます。iOS 16 以降が必要です。React Native
@dodopayments/react-native-checkout は、両方の native core 上で動作する Turbo Module です。React Native 0.76 以降が必要です。Flutter
dodopayments_checkout は、両方の native core 上で動作する Pigeon channel です。Flutter 3.44 以降が必要です。Callback URL Scheme の登録
4 つの SDK はすべて、指定した custom URL scheme を通じて app に制御を戻します。例:myapp://checkout/return。各
platform で 1 回登録してください。
- Android
- iOS
- Expo
android/app/build.gradle
自分で構築したい場合は、
checkout_url を WebView で開き、return_url への navigation を intercept してから、status と payment_id
query parameters を読み取ります。上記の SDK は platform の実際の browser surface でこれを処理するため、Apple Pay と Google Pay が引き続き機能します。ベストプラクティス
- Security: app に API key を決して含めないでください。backend で checkout sessions を作成し、結果として得られた
checkout_urlのみを client に渡してください。 - Authority:
CheckoutResult.statusは UI hint として扱ってください。backend が payment を確認した後にのみ access を許可します。 - User Experience: backend が session を作成している間は loading state を表示し、
cancelledは error ではなく通常の結果として処理してください。 - Testing: test mode と test cards を使用し、simulator だけでなく実際の device でも return-URL round trip を確認してください。
トラブルシューティング
よくある問題
- Callback が届かない:
returnUrlの scheme は、登録したものと一致している必要があります。Android ではdodoCallbackSchememanifest placeholder、iOS と React Native ではInfo.plistURL type です。 - Checkout が app ではなく browser に戻る(iOS): 受信した URL を転送していません。
.onOpenURL、scene(_:openURLContexts:)、または React Native のLinkinglistener からDodoCheckout.handleOpenURL(url)を呼び出してください。 - Android で
PLATFORM_ERROR: ほとんどの場合は scheme の不一致です。また、MainActivityがandroid:taskAffinity=""(標準のflutter createdefault)を設定している場合にも発生することがあります。これにより、一部の OEM builds で進行中の checkout が失われる可能性があります。 ALREADY_IN_PROGRESS: checkout がまだ開いています。別の checkout を開始する前に、前の checkout が完了するか dismiss されるまで待ってください。- 未解決の placeholder により build が失敗する: Android SDK を追加したものの、
manifestPlaceholders["dodoCallbackScheme"]を設定していません。 - Payment は成功したが access が許可されない: mobile result を基準にしている場合に想定される動作です。
payment.succeeded/subscription.activewebhook から access を許可してください。
追加リソース
質問やサポートについては、support@dodopayments.com までお問い合わせください。