Xamarin.iOS 中的订阅和报告

关于非续订订阅

非续订订阅表示销售具有时间限制的服务的产品(例如,在一周内对导航应用程序的访问权限或对数据存档的限时访问)。

非续订订阅和其他产品类型之间的主要区别:

  • iTunes Connect 中的产品定义不包括该术语。 应用程序代码必须能够从产品 ID 推断出有效期。
  • 可以多次购买它们(如易耗品)。 应用程序需要管理订阅期限/到期和续订,并阻止用户购买重叠订阅。
  • 不支持通过 StoreKit 还原功能进行购买。 如果订阅应在所有用户设备中可用,则应用程序必须与远程服务器一起设计和实现此功能。 应用程序还负责备份订阅状态,以备设备进行备份后再从备份中恢复时使用。
  • 实现概述
  • 通常应使用服务器交付的工作流实现非续订订阅,并像管理易耗品一样进行管理。

关于免费订阅

免费订阅允许开发人员将免费内容放入一个 Newsstand 应用(它们不能用于非 Newsstand 应用)。 启动免费订阅后,它将在用户的所有设备上可用。 免费订阅永不过期;它们仅会在卸载应用程序时结束。

实现概述

免费订阅的行为非常类似于自动续订订阅。 应用程序必须具有可在 iTunes Connect 中“购买”的免费订阅产品。 当用户购买时,应像自动续订订阅产品一样验证免费订阅购买。 免费订阅事交易可以还原。

关于自动续订订阅

自动续订订阅主要用于 Newsstand 应用程序。 它们代表一种产品,允许用户在特定时间段内访问动态内容,该时间段在 iTunes Connect 中进行配置(设置的范围从 7 天到 1 年不等)。 订阅会自动续订,除非用户选择退出,否则在每个订阅期结束时向用户 Apple ID 收取费用。该产品类型适用于杂志或新闻订阅,用户在订阅有效期内可以获得每一期的内容。

实现概述

应使用服务器交付的产品工作流(请参阅收据验证和服务器交付的产品部分)实现自动续订订阅。

共享密钥

验证服务器上的自动续订订阅时,必须在 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)"
}

如果购买有效,响应的状态字段将为零,与其他产品类型一样。

在初始订阅期限之后下载项目

作为交付订阅产品的一部分,代码应经常对照 Apple 服务器验证最新的已知收据。 如果订阅自上次验证以来有自动续订,JSON 响应将包含附加字段,通知应用程序已发生的交易(这应延长订阅有效期)。 JSON 响应将包含:

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

如果状态为零,则订阅仍然有效,其他字段保存有效数据。 如果状态为 21006,则订阅已过期。 有关其他错误代码,请参阅“验证自动续订的订阅收据”文档。

还原自动续订订阅

你将收到多笔交易 - 原始购买交易以及每次订阅续订的单独交易。 需要跟踪开始日期和术语,以了解有效期。

SKPaymentTransaction 对象不包括订购期限 - 应为每个期限使用不同的产品 ID,并编写可从交易购买日期推断订购期限的代码。

测试自动续订

为了更轻松地测试订阅,在沙盒中测试时会压缩其持续时间。 1 周订阅每 3 分钟续订一次,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