不正行為や不正使用に対処する¶
このドキュメントでは、不正行為や不正使用に対するXGの仕組みや仕様について説明します。
レシート検証¶
ストア共通¶
課金アイテム購入APIのリクエストに含まれる商品IDがXGに登録されている商品IDであることを確認します。
課金アイテム購入APIのリクエストの購入トークン(PurchaseToken)やトランザクションID(TransactionID)が使用済みでないことを確認します。
リクエストのユーザーと同一ユーザーで使用済みの場合は、処理済みとして成功レスポンスを返却します。
リクエストのユーザーと異なるユーザーで使用済みの場合は、クライアントエラーとしてエラーレスポンスを返却します。
App Store¶
App Store Server APIの Get Transaction Info が成功することを確認します。
XG Developer Siteに登録されている認証情報と 課金アイテム購入(App Store)API のリクエストの商品ID・トランザクションID(TransactionID)を使用します。
XG 本番環境: App Store Server APIの本番環境にリクエストして失敗した場合(エラーコード4040010)はサンドボックス環境にリクエストします。
XG サンドボックス環境: App Store Server APIのサンドボックス環境にリクエストします。
Get Transaction Info のレスポンスに返金理由(revocationReason)が含まれないことを確認します。
Get Transaction Info のレスポンスのproductIdと購入処理APIのリクエストの商品IDが一致することを確認します。
Get Transaction Info のレスポンスのpriceとXGに登録されている商品情報の価格が一致することを確認します。
DMM GAMES¶
Reciboサーバーからのレシート情報の取得が成功することを確認します。
XG Developer Siteに登録されている認証情報と 課金アイテム購入(DMM GAMES)API のリクエストの商品ID・購入トークン(PurchaseToken)を使用します。
取得したレシート情報のproductIdと購入処理APIのリクエストの商品IDが一致することを確認します。
取得したレシート情報のpriceとXGに登録されている商品情報の価格が一致することを確認します。
Google Play¶
Google Play Developer APIの purchases.products.get が成功することを確認します。
XG Developer Siteに登録されている認証情報と 課金アイテム購入(Google Play)API のリクエストの商品ID・購入トークン(PurchaseToken)を使用します。
purchases.products.get のレスポンスの購入ステータス(purchaseState)が購入済み(0)であることを確認します。