課金アイテム購入シーケンス¶
通常シーケンス¶
項目 |
値の例 |
説明 |
|---|---|---|
商品ID |
com.dmm.games.sample.100gem |
ストアとXGに登録されている商品ID |
ストア取引ID |
12345678-...等 |
ストアが発行するグローバルでユニークなID
App Store : transactionId
Google Play : purchaseToken
DMM GAMES: purchaseToken
|
XG側処理状態 |
未処理
クライアントエラー
サーバーエラー
処理済み
|
課金アイテム購入シーケンス実装要件¶
購入前のappAccountTokenのセット(App Store)¶
注釈
Unity IAPを利用する場合は、 appAccountToken に対応したバージョンが必要です。詳細は 動作要件・バージョン要件 を参照してください。
購入前のobfuscatedAccountIdのセット(Google Play)¶
注釈
Unity IAPを利用する場合は、 obfuscatedAccountId に対応したバージョンが必要です。詳細は 動作要件・バージョン要件 を参照してください。
【MUST】利用権付与とXG側の処理の順番¶
注釈
XGから実行しているGoogle Playのアプリ内アイテムの購入の 消費 / 承認 でGoogle Playのサーバー起因のエラーが発生した場合、 XGは500エラーをレスポンスします。サーバー起因のエラー発生箇所(XG、Google Play)にかかわらず「XG側処理状態:サーバーエラー」のシーケンスからリカバリー処理を行なってください。
【MAY】購入個数制限を超えて購入された課金アイテムの対応¶
リカバリーシーケンス¶
No. |
XG側処理状態 |
障害発生箇所 |
想定状況 |
リカバリー処理 |
|---|---|---|---|---|
1 |
レコード無し |
ゲーム端末 |
購入後にゲームサーバーへリクエストできなかった場合。 |
必要 |
ゲームサーバー |
ゲーム端末からリクエストを受信したが、XGへ「課金アイテム購入検証API」をリクエストできなかった場合。
XGへ「課金アイテム購入検証API」をリクエスト後、XGからレスポンスを受信した後の処理に失敗した場合。
|
|||
XG or ストア |
ゲームサーバーからリクエストを受信したが、レスポンスに失敗した場合。 |
|||
2 |
未処理 |
ゲームサーバー |
ゲーム端末からリクエストを受信したが、XGへ「課金アイテム購入API」をリクエストできなかった場合。
XGへ「課金アイテム購入API」をリクエスト後、XGからレスポンスを受信した後の処理に失敗した場合。
|
必要 |
3 |
クライアントエラー |
-
|
XGへの「課金アイテム購入API」リクエストの内容に何らかの問題があった場合。
例
・不正な購入(他のゲームで購入したアイテムの取引IDをXGへリクエストした等)
|
不要 |
4 |
サーバーエラー |
XG or ストア |
「課金アイテム購入API」でXGかストアで5xxエラーかタイムアウトが発生した場合。
※正確にはストアで429エラーが発生した場合、XGはゲームサーバーへリカバリー可能なエラーとして500エラーでレスポンスしています。
|
必要 |
5 |
処理済み |
ゲームサーバー |
XGから処理成功のレスポンスを受信したが、ゲーム端末に結果を返却する処理が出来なかった場合。 |
不要 |
6 |
処理済み |
ゲーム端末 |
finishTransactionを実行できなかった場合。
App Store、DMM GAMESで起こり得ます。
※Google PlayはXG側でアプリ内アイテムの購入の 消費 / 承認を行っているため、起こり得えません。
|
不要 |