アプリケーション側でSDKを統合する
一般的な購入ロジック
- 次のいずれかの方法で支払いトークンを取得するロジックを実装します:
- Storeライブラリを使用します(推奨):
- 一つのアイテムを購入する場合は、
createOrderByItemSku
メソッドを呼び出します。 - カート内のアイテムを購入するには:
- ユーザーがカートを満たした後、
fillCurrentCartWithItems
メソッドを呼び出します。 createOrderFromCartById
またはcreateOrderFromCurrentCart
メソッドを呼び出します。
- ユーザーがカートを満たした後、
- 一つのアイテムを購入する場合は、
- Storeライブラリを使用します(推奨):
- インゲームストア&ゲームキーの直接販売APIを使用します。
- 独自のサーバーメソッドまたはBaaSソリューションメソッドを使用します。
- 決済UIオープン時のロジックを実装します:
お知らせ
実装例として、デモプロジェクトをご覧ください。
Copy
- kotlin
vmPurchase.paymentToken.observe(this) { token ->
val intent = XPayments.createIntentBuilder(this)
.accessToken(AccessToken(token))
.isSandbox(BuildConfig.IS_SANDBOX)
.useWebview(true)
.build()
startActivityForResult(intent, RC_PAYSTATION)
}
- 支払い結果の処理を実装します:
Copy
- kotlin
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_PAYSTATION) {
val (status, _) = XPayments.Result.fromResultIntent(data)
when (status) {
XPayments.Status.COMPLETED -> showSnack(getString(R.string.payment_completed))
XPayments.Status.CANCELLED -> showSnack(getString(R.string.payment_cancelled))
XPayments.Status.UNKNOWN -> showSnack(getString(R.string.payment_unknown))
}
}
}
お知らせ
実装例として、デモプロジェクトをご覧ください。
決済UIを開くオプション
XPayments.createIntentBuilder
メソッドに渡されるパラメータに応じて、決済UIはWebViewまたはカスタムタブで開かれます。
useWebview(true)
パラメータが渡された場合、決済UIを開くために常にWebViewが使用されます。
カスタムタブは、以下の条件を満たす場合に使用されます:
XPayments.createIntentBuilder
を呼び出すときに、useWebview
パラメータが渡されないか、useWebview(false)
が渡されます。- ユーザーのデバイスは、デフォルトで以下のブラウザのいずれかを使用しています:
- Google Chrome
- Samsungブラウザ
- Huaweiブラウザ
異なるブラウザが使用されている場合、XPayments.createIntentBuilder
メソッドのパラメータに関係なく、決済UIはWebViewで開きます。
WebViewでは、ユーザーはブラウザバーや標準的なナビゲーション要素を表示しません。このため、アプリ内課金のプロセスがシームレスに行われます。しかし、アプリケーションを修正し、←アイコンを追加して、ユーザーが購入のどの段階でも決済UIを閉じることができるようにする必要があります。修正例はデモアプリケーションを参照してください。
カスタムタブでは、ユーザーは✖アイコンをクリックして決済UIを閉じることができます。
WebViewの使用例:
カスタムタブの使用例:
進捗状況
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。