iOS IAP - 自动续期订阅

12,237 阅读5分钟

自动续期订阅是苹果推出的一项苹果内购服务,当用户在App Store订阅了某项服务后,App Store会在订阅时间快到期之前,自动扣费并帮用户续订该服务。

自动续期订阅的优势

自动续期订阅群组设置概述

创建自动续期订阅

打开并登录Connect网站

1. 从“我的 App”中,选择您的 App。 
2. 在侧边栏的“App 内购买项目”下方,点按“管理”。 
**3. ** 滚动至“App 内购买项目”部分,并点按添加按钮(+)。
4. 选择自动续期订阅,并点按“创建”。
**5. ** 添加您 App 内购买项目的参考名称和产品 ID,然后点按“下一步”。

6. 创建时,选择自动续期订阅之后,输入名称产品ID

选择订阅群组时,测试组用于开发时,测试使用;(测试组的订阅时限有效时间短,可用于测试自动订阅,下面会提到)

生产环境时选择创建新订阅群组,并输入群组名称

7. 创建好订阅群组后,设置订阅时限订阅价格

8. 设置订阅群组的本地化版本

订阅群组本地化版本名称显示,对应在App Store中的订阅显示如下

推介促销优惠

创建推介促销优惠

1. 选择订阅群组 ==> 订阅价格 ==> 查看所有订阅定价

2.  推介促销优惠  ==> +

3. 选择优惠地区 ==>  设置优惠时间区间

推介优惠的三种类型

假设现在的订阅类型为每个月连续订阅,原价为20元/月

**随用随付:**以下设置表示新用户前三个月,每个月可以以10元的价格订阅

**提前支付:**以下设置表示新用户可以支付30元,一次性开通三个月的会员(原价为20元/月,三个月需要支付60元,所以相当于5折

**免费:**以下设置表示新用户前一个月为免费使用

自动续期订阅设置推介促销优惠的时间组合

关于开发

配置Apple服务器订阅通知URL

  1. 从“我的 App”中,选择您的 App。

  2. 在侧边栏的“综合”下方,点按“App 信息”。

  3. 向下滚动至“综合信息”,然后前往“App Store 服务器通知网址(URL)”部分。

  4. 输入您用于接收 App Store 服务器通知的网址(URL)。

苹果服务器通过HTTP POSTJSON对象传递给您的服务器,以进行订阅事件。 App的服务器负责解析,解释和响应所有服务器到服务器的通知。server-to-server的通知是HTTP POSTPOST的正文包含responseBody中描述的数据元素。苹果服务器会发布由notification_type字段的值表示的订阅事件的通知。

notification_type字段的订阅状态

CANCEL

  • Apple客户支持取消了订阅。检查Cancellation Date以了解订阅取消的日期和时间。

DID_CHANGE_RENEWAL_PREF

  • 用户对其订购计划进行了更改,该更改在下一次续订时生效。 当前活动的计划不受影响。

DID_CHANGE_RENEWAL_STATUS

  • 订阅续订状态的更改。 检查JSON响应中的auto_renew_status_change_date_msauto_renew_status以了解上一次状态更新的日期和时间以及当前的续订状态。

DID_FAIL_TO_RENEW

  • 表示由于计费问题而无法续订的订阅。 如果订阅处于计费宽限期内,请检查is_in_billing_retry_period以了解订阅的当前重试状态,并检查grace_period_expires_date以了解新服务的到期日期。

DID_RECOVER

  • 已过期订阅的自动续订成功。 检查expires_date,以确定下一个续订日期和时间。

INITIAL_BUY

  • 在用户第一次购买订阅时发生。 通过在App Store上进行验证,可以在服务器上将Latest_Receipt作为令牌存储,以随时验证用户的订阅状态。

INTERACTIVE_RENEWAL

  • 用户使用您的应用程序界面或在该帐户的“订阅”设置中的App Store上以交互方式续订了订阅。 立即提供服务。

RENEWAL

  • 已过期订阅的自动续订成功。检查Subscription Expiration Date以确定下一个续订日期和时间。

REFUND

  • 表示App Store已成功退款交易。 cancel_date_ms包含已退款交易的时间戳; original_transaction_idproduct_id标识原始交易和产品,而cancel_reason包含原因。

关于连续的状态及含义和处理方式(仅供参考)

苹果文档说明

关于测试

创建沙盒测试员帐户

1.  打开appstoreconnect.apple.com/

2.  选择用户和访问

3.  创建测试账号

测试账号的电子邮箱可以随便填,不需要验证。例如:xxxx@123.com

测试账号不需要使用时,可以删除

测试自动续期订阅测试时效

假如现在自动续期订阅是一个月订阅一次,当测试账号订阅了一个月的会员成功后,苹果服务器会在五分钟后自动发起server-to-server通知。其他时间按照表格以此类推。

**注意:**每个测试账号,测试每一种续期订阅只能使用一次。比如创建了一个A测试账号,A账号订阅了一个月自动续期订阅之后,苹果服务器只会帮A账号自动续期一次,之后A账号即使再次续订一个月,也不会触发一个月的自动续订。

(如需再次测试一个月自动续期:1、重新创建测试账号  2、可以在设置 -->  App Store --> 沙盒账号 --> 管理 -->  重设优惠资格)