アイテム購入のセットアップ
エクソーラデータにアクセスするために、プロジェクトに最も適した方法を選択してください:
アプリケーションのクライアント側で注文を作成する
エクソーラ側でユーザーとアイテムのデータを持つオーダーを作成するには、指定されたアイテムで注文を作成するAPIコールを使用します。このメソッドは、決済UIを開いて支払いを行うために必要な支払いトークンを返します。サンドボックスモードを使用するには、トークンを取得するためのリクエストの本文に“sandbox”: true
パラメータを渡します。
決済UIを開く
決済UIを新しいウィンドウで開くには、以下のURLをご利用ください:https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
。TOKEN
は取得したトークンです。
また、他のオプションを使って決済UIを開くこともできます:
- ペイステーション埋め込みを利用します。制限:ゲーム内ブラウザ(WebView)で開くと不具合が発生する場合があります。
- iframeで。制限:をゲーム内ブラウザ(WebView)やモバイル版アプリケーションで開くと、不具合が発生する場合があります。
- html
<script>
var options = {
access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
sandbox: true //TODO please do not forget to remove this setting when going live
};
var s = document.createElement('script');
s.type = "text/javascript";
s.async = true;
s.src = "https://static.xsolla.com/embed/paystation/1.0.7/widget.min.js";
s.addEventListener('load', function (e) {
XPayStationWidget.init(options);
}, false);
var head = document.getElementsByTagName('head')[0];
head.appendChild(s);
</script>
<button data-xpaystation-widget-open>Buy Credits</button>
ペイステーション埋め込みを使用すると、postMessage
経由で決済UIからイベントを取得できます。これらのイベントは分析システムに送信できます。分析システムでイベント処理を設定するには、カスタマーサクセスマネージャーに連絡するか、csm@xsolla.comに電子メールを送信してください。
エクソーラチームは、決済UIのウェブサイトへの統合を簡素化するウィジェットを作成しました。ウィジェットスクリプトはGitHubリポジトリにあります。
スクリプト初期化パラメータ:
パラメータ | 種類 | 説明文 |
---|---|---|
access_token | string | APIから受信したトークン。 必須。 |
sandbox | boolean | 決済処理をテストするには、true に設定します。sandbox-secure.xsolla.com がsecure.xsolla.com の代わりに使用されます。 |
lightbox | object | ライトボックスパラメータ(オブジェクト、デスクトップバージョンのみ)。 |
payment_widget_ui.lightbox.width | string | ライトボックスのフレームの高さ。null の場合、ペイステーションの高さに依存します。既定はnull です。 |
payment_widget_ui.lightbox.height | string | ライトボックスのフレームの高さ。null の場合、ペイステーションの高さに依存します。既定は100% です。 |
payment_widget_ui.lightbox.zIndex | integer | 配置順序を定義します。既定は1000 です。 |
payment_widget_ui.lightbox.overlayOpacity | integer | ウィジェットの背景の不透明度(0 — 完全透明、1 — 完全不透明)。デフォルト値は60%です(.6 )。 |
payment_widget_ui.lightbox.overlayBackground | string | オーバーレイの背景色。既定は#000000 。 |
payment_widget_ui.lightbox.modal | boolean | true の場合、ライトボックスフレームを閉じることはできません。既定はfalse です。 |
lightbox.closeByClick | boolean | true の場合、オーバーレイをクリックするとライトボックスが閉じます。既定はtrue です。 |
lightbox.closeByKeyboard | boolean | true の場合、ESCを押すとライトボックスが閉じます。既定はtrue です。 |
payment_widget_ui.lightbox.contentBackground | string | フレームの背景色。デフォルトは#ffffff 。これらの色の変更は、ペイステーションiframe自体には影響を与えず、それを保持するライトボックスの設定のみに影響を与えることに注意してください。 |
payment_widget_ui.lightbox.contentMargin | string | フレームマージン。既定は10px です。 |
payment_widget_ui.lightbox.spinner | string | ローディングアニメーションのインジケータの種類。xsolla またはround に指定できます。既定はxsolla です。 |
payment_widget_ui.lightbox.spinnerColor | string | スピナーの色。既定値はありません。 |
childWindow | object | ペイステーションUIを含む子ウィンドウのオプション。モバイル版でサポートされています。 |
childWindow.target | string | ペイステーションウィンドウを開く場所。_blank 、_self 、_parent に指定できます。既定は_blank です。 |
このスクリプトでは、決済インターフェースのイベントを追跡することができます。イベントの種類に応じて、Webページでさまざまな操作を実行できます。
イベントの一覧:
パラメータ | 説明文 |
---|---|
init | ウィジェットが初期化されました。 |
open | ウィジェットが開かれました。 |
load | 決済インターフェース(ペイステーション)が読み込まれました。 |
close | 決済インターフェース(ペイステーション)が閉じられています。 |
status | ユーザーはステータスページにいます。 |
status-invoice | ユーザーはステータスページにいます。支払いが進行中です。 |
status-delivering | ユーザーはステータスページにいます。支払いが完了しました。支払い通知が送信されました。 |
status-done | ユーザーはステータスページにいます。支払いはユーザーのアカウントに振り込まれます。 |
status-troubled | ユーザーはステータスページにいます。支払いに失敗しました。 |
https://secure.xsolla.com/paystation4/?token=TOKEN
。https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
。access_token
パラメータにはプライベートユーザーデータが含まれます。このパラメータを取得するときは、必ずサーバー間通信を使用してください。Iframeで決済UIを開くには:
postMessage
メカニズムを実装して、決済UIからイベントを受け取ります。- リンク
https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN
をたどって決済UIを開き、TOKEN
は受信したトークンです。
潜在的な問題:iframeで決済UIを開いたときに、一部の決済システムで必要な決済確認コードをコピーするボタンが表示されない場合は、iframeにallow=“clipboard-read; clipboard-write; payment”
属性を渡します。
例:
- html
<iframe
src="https://sandbox-secure.xsolla.com/paystation4/?token=TOKEN"
width="800"
height="700"
allow="clipboard-read; clipboard-write; payment"
></iframe>
テスト支払いを行う
支払い処理をテストするには、サンドボックスモードを使用します。サンドボックスモードは独立した環境で、実際の支払いと拒否された支払いを除き、ライブ環境のすべての機能をサポートします。注文を作成するときに“sandbox”: true
を送信すると、サンドボックスモードにアクセスできます。
エクソーラと契約する前に、支払いプロセスをテストすることはサンドボックスモードでのみ可能です。
テストでは、実際の銀行口座からお金を引き出す必要はありません。
- サンドボックスモードで決済UIを開きます。
- 決済方法の「クレジットカード」を選択します。
- クレジットカードの詳細を入力します。他のフィルドで(例えば、名前または住所)、いずれかのデータを入力できます。間違った内容(カード番号や有効期限)を指定して、エラーが発生するかどうかをテストすることもできます。
- 支払うをクリックします。
カード情報に加えて、以下の条件のうち少なくともひとつに該当する場合は、郵便番号の指定が必要です:
- ユーザーの国は、米国またはカナダです。
- 銀行識別番号(BIN)は、カードが米国で発行されたことを示します。
有効な郵便番号(例:12345)を指定することができます。これは消費税率を決定するもので、テスト支払の進行に影響を与えるものではありません。
サンドボックスモードでは、テストバンクカードのみを使用できます。サンドボックス銀行カードでの決済は、次の通貨で行うことができます:USD、EUR、RUB、GBP、AED、ALL、AMD、ARS、AUD、AZN、BGN、BRL、BYN、CAD、CHF、CLP、CNY、COP、CZK、DKK、DZD、EGP、GEL、HKD、HRK、HUF、IDR、ILS、INR、ISK、JPY、KES、KGS、KRW、KZT、MAD、MDL、MKD、MNT、MXN、MYR、NGN、PEN、PHP、PKR、PLN、RON、RSD、SAR、SEK、SGD、THB、TRY、TWD、UAH、UYU、UZS、VEF、VND、ZAR。
サンドボックスモードで行われたトランザクションに関する手数料を含む詳細情報を確認するには:
- アドミンページを開きます。
- 「会計 > トランザクションレジストリ」に移動します。
- 「テストトランザクションを表示する」ボックスのチェックを入れます。
さらに、アドミンページでの「サポート > トランザクション検索」セクションでトランザクションの詳細を確認し、返金をリクエストすることができます。
注文を作成し、決済UIを開く
エクソーラ側でユーザーと商品のデータを使って注文を作成するには、XsollaCatalog.Purchase
SDKメソッドを呼び出し、以下のパラメータを渡します:
itemSku
— ユーザーが購入したいアイテムのSKU。onSuccess
— 注文状況がdone
に変更した時にトリガーされる購入成功のコールバック。onError
— リクエストエラー時のコールバック。onBrowseClosed
— ブラウザ終了時のコールバック(任意)。イベントは、組み込みブラウザでユーザー決済インターフェイスを表示する時にのみ追跡されます。外部ブラウザイベントは追跡されません。purchaseParams
— ロケールや通貨などの購入パラメータおよびユーザー決済UI設定(任意)。customHeaders
— カスタムウェブリクエストヘッダー(任意)。
XsollaCatalog.Purchase
メソッドは、指定されたアイテムの購入プロセスを開始します。これには、注文の作成、ユーザー決済UIの表示、および注文状況の追跡が含まれます。onSuccessパラメータには、注文ステータスがdone
に変更したときに呼び出される関数を渡します。
注文を作成すると、エクソーラは決済インターフェイスを開いて支払いを行うために必要な支払いトークンを生成します。
デフォルトでは、トークンの有効期間は24時間です。この値を変更したい場合は、カスタマー・サクセス・マネージャーに連絡するか、csm@xsolla.comにメールを送信してください。アドミンページで作成された会社のすべてのプロジェクトに対して、新しい値が有効になります。
テスト支払いを行う
支払いプロセスをテストするには、サンドボックスモードを使用できます。サンドボックスモードは、実際の支払いと拒否された支払いを除くライブ環境のすべての機能をサポートするスタンドアロン環境です。サンドボックスモードにアクセスするには、Unity Editorのパネルで
エクソーラと契約する前に、支払いプロセスをテストすることはサンドボックスモードでのみ可能です。
テストでは、実際の銀行口座からお金を引き出す必要はありません。
- Unity Editorでアプリケーションまたはシーンを実行します。
- 決済方法の「クレジットカード」を選択します。
- クレジットカードの詳細を入力します。他のフィルドで(例えば、名前または住所)、いずれかのデータを入力できます。間違った内容(カード番号や有効期限)を指定して、エラーが発生するかどうかをテストすることもできます。
- 支払うをクリックします。
カード情報に加えて、以下の条件のうち少なくともひとつに該当する場合は、郵便番号の指定が必要です:
- ユーザーの国は、米国またはカナダです。
- 銀行識別番号(BIN)は、カードが米国で発行されたことを示します。
有効な郵便番号(例:12345)を指定することができます。これは消費税率を決定するもので、テスト支払の進行に影響を与えるものではありません。
サンドボックスモードでは、テストバンクカードのみを使用できます。サンドボックス銀行カードでの決済は、次の通貨で行うことができます:USD、EUR、RUB、GBP、AED、ALL、AMD、ARS、AUD、AZN、BGN、BRL、BYN、CAD、CHF、CLP、CNY、COP、CZK、DKK、DZD、EGP、GEL、HKD、HRK、HUF、IDR、ILS、INR、ISK、JPY、KES、KGS、KRW、KZT、MAD、MDL、MKD、MNT、MXN、MYR、NGN、PEN、PHP、PKR、PLN、RON、RSD、SAR、SEK、SGD、THB、TRY、TWD、UAH、UYU、UZS、VEF、VND、ZAR。
サンドボックスモードで行われたトランザクションに関する手数料を含む詳細情報を確認するには:
- アドミンページを開きます。
- 「会計 > トランザクションレジストリ」に移動します。
- 「テストトランザクションを表示する」ボックスのチェックを入れます。
さらに、アドミンページでの「サポート > トランザクション検索」セクションでトランザクションの詳細を確認し、返金をリクエストすることができます。
注文を作成し、決済UIを開く
- エクソーラ側でユーザーとアイテムのデータを使ってオーダーを作成するには、ストアライブラリの
createOrderByItemSku
メソッドを呼び出し、以下のパラメータを渡します:
callback
—成功した注文作成コールバック。決済UIを開いて支払いを行うために必要な支払いトークンを受け取ります。
itemSku
— ユーザーが購入したいアイテムのSKU。
options
— 支払いパラメータ(任意)。
quantity
— ユーザーが購入したいアイテムの数(任意)。数量が指定されない場合、デフォルト値は1
に設定されます。
- 決済UIを表示する時のロジックを実装します:
- kotlin
val intent = XPayments.createIntentBuilder(activity)
.accessToken(AccessToken(<payment token>))
.isSandbox(<isSandbox>)
.build()
startActivityForResult(intent, RC_PAYSTATION)
- 支払い結果の処理を実装します:
- 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 -> Log.d("MainActivity", "Payment completed")
XPayments.Status.CANCELLED -> Log.d("MainActivity", "Payment cancelled")
XPayments.Status.UNKNOWN -> Log.d("MainActivity", "Status unknown")
}
}
}
テスト支払いを行う
支払いプロセスをテストするには、サンドボックスモードを使用できます。サンドボックスモードは、実際の支払いと拒否された支払いを除くライブ環境のすべての機能をサポートするスタンドアロン環境です。サンドボックスモードにアクセスするには、IntentBuilder
オブジェクトを作成するときに、isSandbox
メソッドを呼び出し、引数としてtrue
を渡す必要があります。
エクソーラと契約する前に、支払いプロセスをテストすることはサンドボックスモードでのみ可能です。
テストでは、実際の銀行口座からお金を引き出す必要はありません。
- アプリケーションを実行します。
- 決済方法の「クレジットカード」を選択します。
- クレジットカードの詳細を入力します。他のフィルドで(例えば、名前または住所)、いずれかのデータを入力できます。間違った内容(カード番号や有効期限)を指定して、エラーが発生するかどうかをテストすることもできます。
- 支払うをクリックします。
カード情報に加えて、以下の条件のうち少なくともひとつに該当する場合は、郵便番号の指定が必要です:
- ユーザーの国は、米国またはカナダです。
- 銀行識別番号(BIN)は、カードが米国で発行されたことを示します。
有効な郵便番号(例:12345)を指定することができます。これは消費税率を決定するもので、テスト支払の進行に影響を与えるものではありません。
サンドボックスモードでは、テストバンクカードのみを使用できます。サンドボックス銀行カードでの決済は、次の通貨で行うことができます:USD、EUR、RUB、GBP、AED、ALL、AMD、ARS、AUD、AZN、BGN、BRL、BYN、CAD、CHF、CLP、CNY、COP、CZK、DKK、DZD、EGP、GEL、HKD、HRK、HUF、IDR、ILS、INR、ISK、JPY、KES、KGS、KRW、KZT、MAD、MDL、MKD、MNT、MXN、MYR、NGN、PEN、PHP、PKR、PLN、RON、RSD、SAR、SEK、SGD、THB、TRY、TWD、UAH、UYU、UZS、VEF、VND、ZAR。
サンドボックスモードで行われたトランザクションに関する手数料を含む詳細情報を確認するには:
- アドミンページを開きます。
- 「会計 > トランザクションレジストリ」に移動します。
- 「テストトランザクションを表示する」ボックスのチェックを入れます。
さらに、アドミンページでの「サポート > トランザクション検索」セクションでトランザクションの詳細を確認し、返金をリクエストすることができます。
注文を作成し、決済UIを開く
- エクソーラ側でユーザーとアイテムのデータを持つオーダーを作成するには、
FetchPaymentToken
SDKメソッドを呼び出し、以下のパラメータを渡します:
AuthToken
— エクソーラログインを使用した認証中に取得したユーザー認証トークン。
ItemSKU
— ユーザーが購入したいアイテムのSKU。
SuccessCallback
- 支払いトークンを正常に受け取ったときにトリガーされるコールバック。
ErrorCallback
— リクエストエラー時のコールバック。
PurchaseParams
— ロケールや通貨などの購入およびユーザー決済インターフェースパラメータ(任意)。
- 支払いインターフェイスの表示を実装します。これを行うには、
LaunchPaymentConsole
SDKメソッドを呼び出して、以下のパラメータを渡します:
WorldContextObject
— ワールドコンテキストオブジェクト(C++コール用)。
OrderId
— 注文ID。
AccessToken
— 支払いトークン。
SuccessCallback
— 支払いトークンを正常に受け取ったときにトリガーされるコールバック。
ErrorCallback
— リクエストエラー時のコールバック。
BrowserClosedCallback
— ブラウザ終了時のコールバック。イベントは、組み込みブラウザでユーザー決済インターフェイスを表示する時にのみ追跡されます。外部ブラウザイベントは追跡されません。
PayStationVersion
— ペイステーション版。デフォルトではバージョン4が使用されます。
テスト支払いを行う
支払いプロセスをテストするには、サンドボックスモードを使用できます。サンドボックスモードは、実際の支払いと拒否された支払いを除くライブ環境のすべての機能をサポートするスタンドアロン環境です。サンドボックスモードにアクセスするには、Unreal Editorの
エクソーラと契約する前に、支払いプロセスをテストすることはサンドボックスモードでのみ可能です。
テストでは、実際の銀行口座からお金を引き出す必要はありません。
- Unreal Editorでアプリケーションまたはマップを実行します。
- 決済方法の「クレジットカード」を選択します。
- クレジットカードの詳細を入力します。他のフィルドで(例えば、名前または住所)、いずれかのデータを入力できます。間違った内容(カード番号や有効期限)を指定して、エラーが発生するかどうかをテストすることもできます。
- 支払うをクリックします。
カード情報に加えて、以下の条件のうち少なくともひとつに該当する場合は、郵便番号の指定が必要です:
- ユーザーの国は、米国またはカナダです。
- 銀行識別番号(BIN)は、カードが米国で発行されたことを示します。
有効な郵便番号(例:12345)を指定することができます。これは消費税率を決定するもので、テスト支払の進行に影響を与えるものではありません。
サンドボックスモードでは、テストバンクカードのみを使用できます。サンドボックス銀行カードでの決済は、次の通貨で行うことができます:USD、EUR、RUB、GBP、AED、ALL、AMD、ARS、AUD、AZN、BGN、BRL、BYN、CAD、CHF、CLP、CNY、COP、CZK、DKK、DZD、EGP、GEL、HKD、HRK、HUF、IDR、ILS、INR、ISK、JPY、KES、KGS、KRW、KZT、MAD、MDL、MKD、MNT、MXN、MYR、NGN、PEN、PHP、PKR、PLN、RON、RSD、SAR、SEK、SGD、THB、TRY、TWD、UAH、UYU、UZS、VEF、VND、ZAR。
サンドボックスモードで行われたトランザクションに関する手数料を含む詳細情報を確認するには:
- アドミンページを開きます。
- 「会計 > トランザクションレジストリ」に移動します。
- 「テストトランザクションを表示する」ボックスのチェックを入れます。
さらに、アドミンページでの「サポート > トランザクション検索」セクションでトランザクションの詳細を確認し、返金をリクエストすることができます。
誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。