次の方法で共有


Xamarin.iOS におけるサブスクリプションとレポート

更新のないサブスクリプションについて

更新のないサブスクリプションは、時間制限のあるサービスの販売を表す製品を対象としています (ナビゲーション アプリケーションへの 1 週間のアクセスや、データ アーカイブへの制限付きアクセスなど)。

更新のないサブスクリプションとその他の製品の種類の主な違いは次のとおりです。

  • iTunes Connect の製品定義には、期間は含まれません。 アプリケーション コードは、製品 ID から有効期間を推論できるようにする必要があります。
  • (コンシューマブル製品のように) 複数回購入できます。 アプリケーションは、サブスクリプション期間または有効期限と更新を管理し、ユーザーが重複するサブスクリプションを購入できないようにする必要があります。
  • 購入は、StoreKit 復元関数ではサポートされていません。 サブスクリプションをすべてのユーザーのデバイスで使用できるようにする必要がある場合、アプリケーションはリモート サーバーと組み合わせてこの機能の設計および実装を行う必要があります。 また、アプリケーションは、デバイスがバックアップされ、バックアップから復元される場合に、サブスクリプションの状態をバックアップする役割も担います。
  • 実装の概要
  • 更新のないサブスクリプションは、通常、サーバー配信ワークフローを使用して実装し、コンシューマブル製品と同様に管理する必要があります。

無料サブスクリプションについて

無料サブスクリプションにより、開発者は Newsstand アプリに無料コンテンツを配置できます (Newsstand 以外のアプリでは使用できません)。 無料サブスクリプションが開始されると、すべてのユーザーのデバイスで利用できるようになります。 無料サブスクリプションに有効期限はありません。アプリケーションがアンインストールされた場合にのみ終了します。

実装の概要

無料サブスクリプションは、自動更新サブスクリプションとよく似ています。 アプリケーションには、iTunes Connect で "購入" できる無料サブスクリプション製品が必要です。 ユーザーが購入した場合、無料サブスクリプションの購入は、自動更新サブスクリプション製品と同様に検証する必要があります。 無料のサブスクリプション トランザクションは復元可能です。

自動更新サブスクリプションについて

自動更新サブスクリプションは、主に Newsstand アプリケーションで使用されます。 自動更新サブスクリプションは、iTunes Connect で構成されている特定の期間 (7 日から 1 年の範囲の期間を設定) の動的コンテンツへのアクセスをユーザーに許可する製品を表します。 サブスクリプションは自動的に更新され、ユーザーがオプトアウトしない限り、各サブスクリプション期間の終了時にユーザーの Apple ID に課金されます。この種の製品は雑誌やニュースのサブスクリプションに適しており、ユーザーはサブスクリプションの有効期間中に発行される各号にアクセスできます。

実装の概要

自動更新サブスクリプションは、サーバー配信製品ワークフローを使用して実装する必要があります (受領確認とサーバー配信製品セクション参照)。

Shared Secret (共有シークレット)

サーバーで自動更新サブスクリプションを検証する場合は、JSON 要求でアプリ内購入共有シークレットを使用する必要があります。 共有シークレットは、iTunes Connect を介して作成またはアクセスされます。

iTunes Connect のホーム ページから、次の [マイ アプリ] を選択します。

Select My Apps

アプリケーションを選択し、[アプリ内購入] タブをクリックします。

Click on the In-App Purchases tab

ページの下部にある [共有シークレットの表示または生成] を選択します。

Select View or generate a shared secret

Generate a shared secret

共有シークレットを使用するには、次のように、自動更新サブスクリプションのアプリ内購入レシートを検証するときに Apple のサーバーに送信される JSON ペイロードに含めます。

{
   "receipt-data" : "(receipt bytes here)",
   "password"     : "(shared secret bytes here)"
}

他の製品の種類と同様に、購入が有効な場合、応答の状態フィールドは 0 になります。

初期サブスクリプション期間後のアイテムのダウンロード

サブスクリプション製品の配信の一環として、コードは Apple のサーバーに対して最新の既知のレシートを頻繁に検証する必要があります。 前回の検証以降にサブスクリプションが自動更新された場合、JSON 応答には、発生したトランザクション (サブスクリプションの有効期限が延長されます) をアプリケーションに通知する追加のフィールドが含まれます。 JSON 応答には次のものが含まれます。

{
   "status" : 0,
   "receipt" : { (receipt here) },
   "latest_receipt" : "(base-64 encoded receipt here)",
   "latest_receipt_info" : { (latest receipt info here) }
}

状態が 0 の場合、サブスクリプションは引き続き有効であり、他のフィールドには有効なデータが保持されます。 状態が 21006 の場合、サブスクリプションの有効期限が切れています。 その他のエラー コードについては、自動更新サブスクリプション レシートの検証に関するドキュメントを参照してください。

自動更新サブスクリプションの復元

複数のトランザクション (元の購入トランザクションに加えて、サブスクリプションが更新された期間ごとの個別のトランザクション) が返されます。 有効期間を把握するには、開始日と条件を追跡する必要があります。

SKPaymentTransaction オブジェクトにはサブスクリプション期間は含まれません。期間ごとに異なる製品 ID を使用し、トランザクションの購入日からサブスクリプション期間を推定できるコードを記述する必要があります。

自動更新のテスト

サブスクリプションをテストしやすくするために、サンドボックスでテストする場合は期間が圧縮されます。 1 週間のサブスクリプションは 3 分ごとに更新され、1 年間のサブスクリプションは 1 時間ごとに更新されます。 サンドボックスでのテスト中、サブスクリプションは最大 6 回自動更新されます。

報告

iTunes Connect ( itunesconnect.apple.com) には次の機能があります。

売上と傾向 – アプリのダウンロード、更新プログラム、アプリ内購入の詳細が表示されます。

支払と財務レポート – アプリによって得られた収入と、ユーザーに対して行われた支払いの一覧、および支払い額の詳細を示します。

[売上と傾向] レポートの例を次に示します。

An example Sales and Trends report

ITC Connect Mobile iOS アプリもあります。 利用可能な統計情報の一部を示した iPhone のスクリーンショット:

iPhone screenshots for some of the statistics available