サーバー側の統合

このタイプの統合は、認証、ゲーム内ストア、プレイヤーのインベントリなどのゲームロジックをすでに自社サーバーに実装しており、エクソラ決済ステーションを利用したいと考えているパートナーに適しています。決済ステーションアクセストークンを取得し、ウェブフックの取り扱いを設定する必要があります。

サーバー統合時には、以下のような決済処理ロジックが実装されています:

  1. クライアントは、アプリケーションサーバーにリクエストを送信して、決済インターフェースを開きます。
  2. アプリケーションサーバーは、エクソラサーバーに決済通貨と金額に関する情報を送信します。
  3. エクソラサーバーは、購入詳細と決済ステーションのパラメータを含むトークンを返します。
  4. アプリケーションサーバは、受信したトークンをクライアントに送信します。
  5. クライアントは、SDKを使用してブラウザで決済ステーションを開きます。
  6. 購入代金を支払った後、決済状況が記載されたウェブフックがアプリケーションサーバーに送信されます。

ディスコードサーバー
エクソラチームおよびエクソラ製品を使用する開発者とつながります。

統合フロー

Paymentsライブラリを統合するには:

  1. Android Studioをダウンロードしてインストールします。
  2. 新しいプロジェクトを作成します。
  3. サーバー上にゲーム内ストアと商品カタログを設定します。
  4. パブリッシャーアカウントでプロジェクトを設定します。
  5. ライブラリをインストールします
  6. リターンURLを構成します
  7. トークンを取得します
  8. 決済UIを開きます
  9. ウェブフックの取り扱いを設定します

統合が完了したら、決済プロセスをテストできます

Note
このガイドでは、モジュールのクイックスタートに必要な最低限の設定について説明します。ご質問がある場合は、アカウントマネージャーにお問い合わせください。

パブリッシャーアカウントでプロジェクトをセットアップする

  1. パブリッシャーアカウントにサインアップします。
  2. プロジェクトを構成します:
    1. ゲームデータを自動的に入力するには、任意のプラットフォームでゲームへのリンクを入力します。その結果、ゲームの画像、名前、説明がプロジェクト設定に追加されます。
    2. ゲームデータを手動で入力するには、リンクがありませんで、手動でセットアップしますをクリックし、以下のことを指定してください:
      • プロジェクト言語(既定では英語が設定されています)
      • 指定されたすべての言語のプロジェクト名
      • ゲームウェブサイト(任意)
    3. プロジェクトを作成するをクリックします。

統合には以下のパラメータが必要です:

  • プロジェクト設定>ウェブフックでのマーチャントID

  • 会社設定 > APIキーセクションでのAPIキー

  • プロジェクト設定 > プロジェクトIDでのプロジェクトID

  • プロジェクト設定 > ウェブフックセクションでの秘密鍵

ライブラリをインストールする

ライブラリはMaven Centralで使用できます。

ライブラリをインストールするには:

  1. Android Studioを起動します。
  2. アプリケーションのbuild.gradleファイルを開きます。
  3. 依存関係セクションに次の行を追加します。そこで、<version_number>は、Paymentsライブラリの必要なバージョンです:

最新バージョン:

Copy
Full screen
Small screen
implementation 'com.xsolla.android:payments:<version_number>'

リターンURLを構成する

Note
リターンURLは、決済後にユーザーがリダイレクトされるURLアドレスまたはパスです。

次の文字列をプロジェクトの文字列リソースファイルに追加して、パブリッシャーアカウントで設定されたリターンURLを指定します。

Copy
Full screen
Small screen
<string name="xsolla_payments_redirect_scheme">app</string>
<string name="xsolla_payments_redirect_host">yourgame</string>

そこで、リターンURLパーツに分割して設定する必要があります。例えば、app://yourgame

トークンを取得する

トークンを取得するには、Create payment token by server APIコールを使用します。サーバーは、以下のデータを含むリクエストをエクソラサーバーに送信する必要があります:

  • 購入したユーザーのID
  • 支払い額
  • 決済通貨
  • 購入明細(任意)
  • 決済ステーションパラメータ(任意)

以下のいずれかの方法で購入情報を渡すことができます:

  • itemパラメータを介してアイテムのリストとして
  • descriptionパラメータを介して購入の説明として

決済ステーションンのパラメータ(例:ローカライゼーション言語、インターフェースのプロパティ、テーマ)は、settingsオブジェクトに渡されます。サンドボックスモードを有効/無効にするには、トークンを受信するリクエストのsandboxパラメータの値を変更し、SDKの設定を変更する必要があります。決済ステーションのインターフェースの残りの設定を変更するには、トークンの要求のパラメータを変更する必要があります。

Note
custom_parametersパラメータを使用して追加情報を渡すことができます。この情報は、設定されたウェブフックにも渡されます。

決済UIを開く

決済ステーションインテントを作成する

決済UIを開くには、前のステップで取得したトークンをXPayments.createIntentBuilderSDKメソッドに渡します。

Copy
Full screen
Small screen
val intent = XPayments.createIntentBuilder(getContext())
            .accessToken(AccessToken(token))
            .isSandbox(BuildConfig.IS_SANDBOX)
            .build()

作成したインテントを使用してアクティビティを開始する

Copy
Full screen
Small screen
startActivityForResult(intent, RC_PAYSTATION)

アクティビティ結果を構文解析する

Copy
Full screen
Small screen
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
       super.onActivityResult(requestCode, resultCode, data)
       if (requestCode == RC_PAYSTATION) {
           val result = XPayments.Result.fromResultIntent(data)
       }
   }

上のコード例では、以下のデータがresult変数に渡されています:

  • 支払い処理のステータス — completedまたはcanceledになる場合がありまあす。
  • インボイスID — 決済ステーションでの支払い処理が成功した後に割り当てられます。

便宜上、このデータは次のように個別の変数に抽出できます:

Copy
Full screen
Small screen
val (status, invoiceId) = XPayments.Result.fromResultIntent(data)

Notice
SDKのメソッドで取得した決済データを、ユーザーにアイテムを付与するために使用しないでください。安全ではありません。

ユーザーにアイテムを付与するには、ウェブフックを使ってサーバーで決済データを受け取ります。アプリケーションサーバーがウェブフックを受信するまでの間、クライアント側でSDKのメソッドで取得したデータを使用して、決済状況を表示します。

ウェブフックの設定

  1. パブリッシャーアカウントに移動します。
  2. プロジェクト設定>ウェブフックに移動し、ウェブフックURLを指定し、秘密鍵を生成してプロジェクトウェブフックにサインします。

  1. 設定を保存します。
  2. 決済ステーションに次のウェブフックを実装します:

  1. チェックアウトタブに移動し、接続をクリックします。

  1. ウェブフックハンドラをテストします。

Note
ウェブフックの受信を確認するには、サーバーが以下のことを応答しなければなりません:
  • メッセージ本文のないHTTPコード204
  • 指定されたユーザーが見つからなかった場合、または無効な署名が渡された場合の問題を記述するHTTPコード400
APIリファレンスでは、例を含むウェブフックの詳細を読むことができます。

  1. サイドメニューの決済ステーション をクリックして、設定に移動します。
  2. チェックアウトトグル をオンに設定します。

  1. 保存をクリックします。

支払処理をテストする

ライブラリの設定が完了した後、支払い処理をテストします。デフォルトでは、すべての決済はサンドボックスモードになっており、テスト用の銀行カードを使って、決済プロセスの成功をシミュレートすることができます。

実際の支払いを行って支払処理をテストするには:

  • エクソラと契約を結んでいることを確認してください。
  • PaystationIntentを構築するときに、.isSandbox(false)を設定します。
  • トークンのリクエストで、sandboxパラメータをfalseに設定します。

この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
このページを評価する
このページを評価する
改善できることはありますか?

答えたくない

ご意見ありがとうございました!
最終更新日: 2022年1月18日

誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!