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

And*_*ord 4 subscription ios auto-renewing

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

\n

虽然“正常”订阅(无介绍性优惠)在我的应用程序和服务器上(收据验证和用户帐户处理)都运行良好,但我很难理解如何提供免费试用期。

\n

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

\n
\n

问题 1:了解资格

\n

来自苹果文档:

\n
\n

您可以向之前未\xe2\x80\x99\n收到给定产品或同一订阅组中任何\n产品介绍性优惠的客户提供介绍性优惠 (...)

\n

在提供介绍性价格之前,您必须首先确定\n用户是否有资格接收该价格 (...)

\n

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

\n
\n

假设我已经设置了7 天免费试用的订阅。用户购买此订阅、使用免费试用版并继续付费订阅一段时间,然后再取消订阅。一段时间后,想要继续订阅

\n

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

\n
    \n
  • 会因为已经使用了免费试用而失败吗?( “...谁之前没有\xe2\x80\x99t收到过介绍性offer...” )
  • \n
  • 是否会开始另一个免费试用期?(==商店根本不检查资格)
  • \n
  • 是否会从没有免费试用而是直接付费的阶段开始
  • \n
\n

换句话说:

\n

检查资格是否仅需要显示正确的 UI(= 授予优惠是/否由商店检查)或确保用户不会从同一优惠中受益(= 授予优惠是/否由应用程序检查)?

\n
\n

问题2:如何查询资格?

\n

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

\n

好吧,但据我所知,不能保证收据可用。如果找不到收据,用户必须首先提供他的应用程序商店凭据才能下载收据...

\n

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

\n

这真的是预期的实现吗?

\n
\n

问题3:如何办理资格?

\n

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

\n

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

\n

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

\n

Yog*_*hik 5

问题 1:了解资格

他将立即被收取订阅费用。免费试用仅限一次

问题3:如何办理资格?

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

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

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

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

要检查用户的资格,您需要将收据传递到您的服务器。然后,您的服务器可以向 Apple 查询解码后的收据(/verifyReceipt 端点)。在解码后的收据中,检查latest_renewal_info列表中的所有txn。如果您发现同一订阅组中的任何产品的 is_in_free_Trial 字段为 true,那么您可以安全地假设用户之前使用过免费试用版,并向用户显示正确的消息。

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

我同意苹果在查询产品时会在应用程序本身中提供资格。但请相信我,包括谷歌在内的所有应用商店都没有提供此信息。

就登录而言,收据始终存在于沙箱位置,并且可以从那里检索。(另外,请务必考虑到,如果用户未登录,则无论如何都无法购买订阅)