不正行為や不正使用に対処する

このドキュメントでは、不正行為や不正使用に対する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サーバーからのレシート情報の取得が成功することを確認します。

  • 取得したレシート情報のproductIdと購入処理APIのリクエストの商品IDが一致することを確認します。

  • 取得したレシート情報のpriceとXGに登録されている商品情報の価格が一致することを確認します。

Google Play

  • Google Play Developer APIの purchases.products.get が成功することを確認します。

  • purchases.products.get のレスポンスの購入ステータス(purchaseState)が購入済み(0)であることを確認します。

レシート情報の取得 ドキュメント一覧