ドキュメント

返金通知の処理

消耗型、非消耗型、非自動更新サブスクリプションの各プロダクトに関するユーザーへの返金時に作成される通知に応答します。

最新の英語ドキュメント

Handling Refund Notifications


概要

App Storeサーバは、ユーザーがアプリ内課金の返金を受け取る際、ほぼリアルタイムで通知を送信します。ゲーム内通貨などのコンテンツを複数のプラットフォームで提供していて、プレイヤーアカウントの残高をサーバ上で更新している場合は、返金通知を受信することが重要になります。受信した返金通知の解釈と処理を行い、返金に応じて実行するアクションについて、アプリ内でユーザーに伝えます。

ユーザーが単発購入の返金を受けた際の通知の受信

ユーザーは、次のようないくつかの方法で返金をリクエストします。

  • Appleカスタマーサポートに問い合わせて返金を依頼する

  • Appleのセルフサービスツール(reportaproblem.apple.com(英語))にログインして、返金をリクエストする

  • 支払い方法の発行者に返金を依頼する

App Storeで返金が処理されると、App Storeサーバはデベロッパのサーバに対して、デベロッパが設定したURLにREFUND通知を送信します。デベロッパのサーバは、応答コード200を使って通知に応答する必要があります。通知を有効にする方法は、「App Storeサーバ通知の有効化」を参照してください。

REFUND通知は、消耗型、非消耗型、および非自動更新サブスクリプションにのみ適用されます。自動更新サブスクリプションの返金を検出するには、「返金の検出(英語)」を参照してください。

返金通知の解釈と処理

デベロッパのサーバは、App Storeサーバから受け取った通知をすべて解析し、解釈する責任を負います。REFUND通知の場合は、応答する際に具体的なトランザクション、プロダクトID、および関連する日付を特定します。

  • unified_receipt.latest_receipt_infopurchase_dateを調べ、product_idの最新のトランザクションを特定します。

  • App Storeが返金を発行した日付は、このトランザクションのcancellation_date_msフィールドにあります。

この応答について詳しくは、「App Storeサーバ通知(英語)」を参照してください。

デベロッパは、REFUND通知を受け取ったら、返金された各トランザクションを保存し、それに対するモニタリングと適切な処理を行う責任があります。たとえば、通知をプレイヤーのアカウントやセッションにリンクさせて、返金されたトランザクションを処理する独自のゲーム内通貨の残高調整ロジックを組み込むことができます。

返金に応じてアクションを実行する場合は、アプリ内でメッセージを表示してそのことをユーザーに伝えます。

不正な返金の特定

REFUND通知をデベロッパのサーバ上のプレイヤーアカウントにマッピングすることで、返金が何度も繰り返されている購入を特定し、不正な返金を減らすことができます。データのモニタリングと分析を継続し、不審な返金アクティビティを特定してください。

複数のプラットフォームでコンテンツを提供している場合は、デベロッパのサーバでユーザーアカウントの残高を常に最新の状態に保ってください。App Storeサーバ通知を使えば、ユーザーに影響するトランザクションの最新ステータスをほぼリアルタイムで取得できます。