Web Service


App Store Server API


あなたのサーバから顧客たちの App Store 取引を管理します。


App Store Server API 1.0+




概観


App Store Server API は、あなたのサーバから呼び出して顧客たちのアプリ内購入に関する情報を要求および提供するための REST API です。App Store は、JSON Web Signature (JWS) 仕様を使用して、この API が返す取引とサブスクリプション更新情報に署名します。ほとんどのエンドポイントは、あなたが提供した取引 ID で示される、あなたのアプリの単一の顧客のデータを返します。


App Store Server API は、顧客たちのデバイス上のアプリのインストール状態とは無関係です。App Store サーバは、顧客がデバイスにアプリをインストール、削除、または再インストールしたかどうかに関係なく、顧客のアプリ内購入履歴に基づいて情報を返します。


この API は以下の機能を提供します。


  • 取引と自動更新サブスクリプションのステータス。 取引情報の取得 を呼び出すことで単一の取引の情報を取得するか、取引履歴を取得する を使用して顧客の取引履歴全体を取得します。Get All Subscription Statuses を呼び出すと、最新のサブスクリプションステータスを取得できます。この情報を使用して、あなたのサーバ上で顧客たちの購入情報を最新の状態に保ちます。

  • 払い戻し情報。 Get Refund History を呼び出すと、顧客の払い戻し履歴を取得できます。App Store Server Notifications V2 から CONSUMPTION_REQUEST notificationType をあなたが受け取った後、顧客が消耗品のアプリ内購入の払い戻しを要求したときに、Send Consumption Information エンドポイントを使用して情報を App Store に送信します。あなたのデータは払い戻しの決定に役立ちます。

  • App Store サーバ通知の履歴とテスト。 Get Notification History を呼び出して、過去 180 日間にあなたのサーバが見逃した可能性のある通知を要求します。Request a Test NotificationGet Test Notification Status を呼び出して、あなたのサーバが App Store Server Notification V2 エンドポイントで通知を正常に受信しているかどうかをテストします。

  • サブスクリプション更新日の延長。 Extend a Subscription Renewal Date と関連エンドポイントを呼び出して、一時的なサービス停止、キャンセルされたイベント、またはライブストリーミングイベントの中断に対してあなたの顧客たちに補償するために、有料のアクティブなサブスクリプションの更新日を延長します。詳細については、自動更新サブスクリプションの更新日の延長 (Extending the renewal date for auto-renewable subscriptions) を参照してください。

  • 注文情報の検索。 顧客たちが電子メールで受け取る App Store の領収書に記載されている顧客の注文 ID に基づいてアプリ内購入情報を取得するには、Look Up Order ID を呼び出します。

  • App Store Server API を使用するには、あなたのサーバが Transport Layer Security (TLS) プロトコル 1.2 以降をサポートしていなければなりません。


    この API の最新の変更内容については、App Store サーバ API の変更履歴 を確認してください。Apple Developer Web サイト で App Store Server API に関するビデオを探してください。



    あなたの API 呼び出しを承認


    API への呼び出しには、承認のための JSON Web Tokens (JWT) が必要です。tokens (トークン) を作成するためのキーは、あなたの組織の App Store Connect アカウントから取得します。あなたのキーを作成するには、API 要求を承認するため API キーの作成 を参照してください。あなたのキーを使用してトークンを生成し、API リクエストを送信するには、API 要求用の JSON Web トークンの生成 を参照してください。


    完全な署名済みトークンを取得したら、そのトークンをリクエストの承認ヘッダに持参トークンとして提供します。新しい API リクエストごとに新しいトークンを生成するか、有効期限が切れるまでトークンを再利用します。



    JWT を作成し、取引を検証し、もっと App Store サーバーライブラリを使用して


    App Store Server Library は、Apple のオープンソースライブラリで、4 つの言語で利用できます。呼び出しを承認するための JWT の作成など、App Store Server API の導入を容易にするクライアントを提供します。詳細については、App Store サーバー ライブラリを使用して実装を簡素化する および WWDC23 セッション App Store Serverライブラリについて を参照してください。



    サンドボックス環境を使用してテスト


    Look Up Order ID (注文 ID の検索) を除くすべての App Store Server API エンドポイントは、サンドボックス環境でテストできます。以下の基本 URL を使用してエンドポイントに要求を送信し、サンドボックス環境にアクセスします。


    https://api.storekit-sandbox.itunes.apple.com/

    たとえば、サンドボックス環境で 取引履歴を取得する を呼び出すには、サンドボックス URL を使用して要求を送信します。


    https://api.storekit-sandbox.itunes.apple.com/inApps/v2/history/{transactionId}

    パス内の /inApps では大文字と小文字が区別されることに注意してください。


    transactionId をパラメータとして受け取るエンドポイントの場合は、取引 ID を作成するのと同じ環境を使用してエンドポイントを呼び出すようにしてください。環境情報は、JWSTransactionDecodedPayloadenvironment プロパティにあります。


    environment (環境) 情報がない場合は、以下の手順に従ってください。


    1. 製品 URL を使用してエンドポイントを呼び出します。呼び出しが成功した場合、取引 ID は製品の環境に属します。

    2. エラーコード 4040010 TransactionIdNotFoundError を受け取った場合は、サンドボックス環境を使用してエンドポイントを呼び出します。

    3. 呼び出しが成功した場合、取引 ID はサンドボックス環境に属します。呼び出しが 4040010 エラーコードで失敗した場合、取引 ID はどちらの環境にも存在しません。




    トピックス


    要点


    App Store サーバー ライブラリを使用して実装を簡素化する

    Apple のオープンソースライブラリを使用して JSON Web Token (JWT) を作成し、あなたの呼び出しの承認、取引の検証、領収書からの取引 ID の抽出などを行います。


    API 要求を承認するため API キーの作成

    JSON Web トークンに署名し、API 要求を承認するために使用する API キーを作成します。


    API 要求用の JSON Web トークンの生成

    あなたの秘密鍵 (private key) で署名された JSON Web トークンを作成し、App Store サーバ API および外部購入サーバー API への要求を承認します。


    レート制限の識別

    App Store Server API エンドポイントに適用されるレート制限を認識し、あなたのコード内で処理します。


    App Store サーバ API の変更履歴 (App Store Server API changelog)

    App Store Server API の新機能と更新について説明します。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ