如何支持/提供免费试用期的iOS订阅?

如何支持/提供免费试用期的iOS订阅?,ios,subscription,auto-renewing,Ios,Subscription,Auto Renewing,我正在努力改变我现有的iOS 10+应用程序,以提供自动续费订阅 虽然“普通”订阅(没有介绍性优惠)在我的应用程序和服务器上都可以正常工作(收据验证和用户帐户处理),但我很难理解如何提供免费试用期 在App Store Connect中设置免费试用期没有问题,但我不知道如何在我的应用程序和服务器上实现它。 问题1:了解资格 从苹果文档: 您可以向以前没有购买过的客户提供介绍性优惠 收到给定产品的介绍性报价,或 同一订阅组中的产品(…) 在提供介绍价格之前,您必须首先确定 用户有资格接收它(…)

我正在努力改变我现有的iOS 10+应用程序,以提供自动续费订阅

虽然“普通”订阅(没有介绍性优惠)在我的应用程序和服务器上都可以正常工作(收据验证和用户帐户处理),但我很难理解如何提供免费试用期

在App Store Connect中设置免费试用期没有问题,但我不知道如何在我的应用程序和服务器上实现它。


问题1:了解资格

从苹果文档:

您可以向以前没有购买过的客户提供介绍性优惠 收到给定产品的介绍性报价,或 同一订阅组中的产品(…)

在提供介绍价格之前,您必须首先确定 用户有资格接收它(…)

要确定用户是否有资格获得介绍性优惠,请检查其收据

假设我设置了一个订阅,7天免费试用。用户购买此订阅,使用免费试用,并在取消订阅之前继续付费订阅一段时间。一段时间后,用户希望继续订阅

如果用户再次购买相同的订阅产品,会发生什么情况

  • 会因为他已经使用了免费试用而失败吗?(“…之前未收到介绍性报价的人…”
  • 它会从另一个免费试用期开始吗?(==商店根本不检查资格)
  • 它会以免费试用开始,但直接以付费期开始吗
换句话说:

是否只需要检查合格性以显示正确的UI(=按商店检查是否授予优惠)或确保用户不会从相同优惠中受益(=按应用程序检查是否授予优惠)


问题2:如何检查资格?

如苹果文档中所述,检查资格的最佳方法是验证应用程序收据,并检查是否已收到介绍性报价。这应该尽早完成,最好是在应用程序启动时

很好,但据我所知,收据不能保证有效。如果找不到收据,用户必须首先提供其应用商店凭据以下载收据

如果应用程序在第一次启动时所做的第一件事就是要求用户登录商店,那将是非常烦人的

这真的是预期的实现吗?


问题3:如何处理资格问题?

假设我已成功检查用户是否有资格接收优惠:如何提供优惠?

我是否必须在App Store Connect中设置两种不同的订阅产品(一种免费试用,另一种不免费),才能让用户购买其中一种

或者,资格检查只需要显示正确的用户界面(“立即购买,免费试用”与“立即购买”),而我可以在这两种情况下使用相同的产品

问题1:了解资格

他将立即收取订阅费。免费试用只能使用一次

问题3:如何处理资格

  • 我是否必须在App Store Connect中设置两种不同的订阅产品(一种免费试用,另一种不免费)才能让用户使用 买一个还是另一个

    否。您只需设置一个产品并添加介绍性优惠(免费试用或介绍性优惠)

  • 或者资格检查只需要显示正确的用户界面(“立即购买,免费试用”与“立即购买”),而我可以在这两种情况下使用相同的产品

    仅用于显示正确的CTA和消息。最终,商店(苹果)将决定用户是否将获得免费试用

  • 要检查用户的资格,您需要将收据传递给服务器。然后,您的服务器可以向苹果查询解码的收据(/verifyreceiveendpoint)。在解码收据中,检查最新更新信息列表中的所有txn。如果您发现同一订阅组中的任何产品的“免费试用”字段中的“是”,则可以安全地假定用户以前使用过免费试用,并向用户显示正确的消息

    此外,即使每个订阅组下的所有产品都启用了免费试用,用户也只能获得一次免费试用。

    我同意苹果在查询产品时会在应用程序本身中提供资格。但是相信我,没有一家应用商店提供这些信息,包括谷歌

    就登录而言,收据始终存在于沙箱位置,并且可以从那里检索。(同时,如果用户没有登录,请考虑用户无论如何不能购买订阅)