ゲーム内通貨消費

通常シーケンス

ゲーム内通貨消費シーケンス実装要件

【MUST】リクエスト情報の保持

リカバリー時のAPIリクエストは、 初回のAPIリクエストと同じリクエストボディで実行する必要があります。 そのため APIリクエストが成功するまでは、ゲーム側でリクエスト情報を保持してください。
初回と異なるリクエストボディでAPIリクエストを実行した場合、クライアントエラーが発生します。

【SHOULD】ゲーム内通貨の消費とゲーム内アイテム付与の順番

シーケンス通り 先に消費APIリクエストを実行し、APIリクエストが成功(ゲーム内通貨を消費)した場合のみゲーム内アイテムを付与してください。
ゲーム内アイテムを先に付与する実装の場合、状況によってはゲーム内通貨を消費せずにゲーム内アイテムを付与したままの状態になる可能性があります。
例えば、悪意のあるユーザーが不具合を付き、ゲーム内通貨を消費せずにゲーム内アイテムを不正に入手するリスクが考えられます。

【SHOULD】ゲーム内通貨の残高チェック

シーケンスのNo.1か2を実行する前にゲーム内通貨の残高を取得し、 残高不足の場合はゲーム内通貨消費APIを実行しないようにしてください。
残高不足の状態で消費シーケンスを繰り返して実行された場合、消費状態レコードが大量に生成・更新されてしまう可能性があります。
残高不足の場合は「アイテムのグレーアウト」や「ゲーム内通貨の購入画面」へ遷移する等、ユーザーがゲーム内通貨の消費行動を行えないようにしてください。

リカバリーシーケンス

注釈

補足1
リカバリーでゲーム内アイテムの付与が適さないアイテムは以下を想定しています。
  • コンティニューやスタミナ回復等、ユーザーがリクエストした時に効果が発揮されないと価値提供ができないアイテム

  • 期間限定品のように定められた期間を超えて付与されても使用できない(ガチャチケット)、あるいは都合の悪いアイテム

「消費状態レコード」の処理状態をリカバリー処理の要否

ゲーム内通貨消費状態

アイテム付与状態

障害発生箇所

想定状況

リカバリー処理

1

-

-

-

起こり得ないパターン。

-

2

消費前

付与前

ゲームサーバー

XGへ「ゲーム内通貨消費API」をリクエスト後、XGからレスポンスを受信出来なかった場合。
XGの処理は完了し、ゲーム内通貨を消費している可能性があります。

必要

3

クライアントエラー

付与前

-

XGへの「消費API」リクエストの内容に何らかの問題があった場合。

不要

4

サーバーエラー

付与前

XG

「ゲーム内通貨消費API」XGで5xxエラーかタイムアウトが発生した場合。
XGの処理は完了し、ゲーム内通貨を消費している可能性があります。

必要

5

消費済み

付与前

ゲームサーバー

XGから処理成功のレスポンスを受信したが、ゲーム側の状態更新処理が完了しなかった場合。

必要

6

消費済み

付与済み

-

正常に処理を完了しているパターン。

不要