如何在免费试用期内支持/提供iOS订阅? [英] How to support / offer iOS subscriptions with a free trial period?

查看:197
本文介绍了如何在免费试用期内支持/提供iOS订阅?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在努力转移现有的iOS 10+应用程序,以提供自动续订服务.

正常"订阅(无介绍性报价)在我的应用程序和服务器上(收款确认和用户帐户处理)都可以正常工作.我很难理解如何提供免费试用期.

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


问题1:了解资格

从Apple文档中获取:

您可以向以前没有的客户提供介绍性报价收到了给定产品或任何其他产品的介绍性报价同一订阅组中的产品(...)

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

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

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

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

  • 会因为他已经使用免费试用而失败吗?(" ...以前没有收到过介绍性要约的...... )
  • 它将从另一个免费试用期开始吗?(==商店根本不检查资格)
  • 它将以免费免费试用开始,而直接以付费期限

换句话说:

正在仅检查资格,以显示正确的用户界面(=授予报价是/否由商店检查),或确保用户不会从同一报价中受益(=授予报价是/否由应用检查)?


问题2:如何检查资格?

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

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

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

这真的是预期的实现吗?


问题3:如何处理资格?

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

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

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

解决方案

问题1:了解资格

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

问题3:如何处理资格?

  1. 我是否必须在App Store Connect中设置两种不同的订阅产品(一种带有免费试用版,另一种不带有免费试用版)以允许用户购买一个或另一个?

    否.您只需要设置一种产品并添加介绍性报价(免费试用或介绍性报价)

  2. 还是仅在显示正确的用户界面时才需要进行资格检查(免费试用立即购买"与立即购买"),而我在两种情况下都可以使用相同的产品?

    仅用于显示正确的CTA和消息传递.最终,Store(Apple)决定用户是否可以免费试用

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

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

我同意Apple在查询产品时会提供该应用程序的资格.但是请相信我,包括Google在内的所有App Store都不提供此信息.

就登录而言,收据始终位于沙箱位置,并且可以从该位置取回.(此外,请务必考虑如果用户未登录,则无论如何都无法购买该订阅)

I am working on shifting my existing iOS 10+ app to offer auto-renewing subscriptions.

While "normal" subscriptions (no introductory offer) work fine both within my app and on my server (receipt validation and user account handling) I am having a hard time to understand how a free trial period can be offered.

Setting up the free trial period in App Store Connect is no problem, but I do not understand how to implement it in my app and on my server.


Problem 1 : Understanding eligibility

From the Apple docs:

You can make introductory offers to customers who haven’t previously received an introductory offer for the given product, or for any products in the same subscription group (...)

Before offering introductory price, you must first determine if the user is eligible to receive it (...)

To determine if a user is eligible for an introductory offer, check their receipt...

Assume I have setup a subscription with a 7 day free trial. A user purchases this subscriptions, uses the free trial and continues the paid subscriptions for a while before the subscription is canceled. Some time later the wants to continue the subscriptions

What happens if the user purchases the same subscription product again?

  • Will fail because he has already used the free trial? ("... who haven’t previously received an introductory offer...")
  • Will it start with another free trial period? (== Store does not check the eligibility at all)
  • Will it start with no free trial but directly with a payed period

In other words:

Is checking the eligibility only necessary to show the right UI (= grant offer yes/no is checked by store) or to make sure the user does not benefits from the same offer (= grant offer yes/no is checked by app)?


Problem 2 : How to check eligibility?

As described in the apple docs the best way to check the eligibility is to validate the app receipt and to check whether an introductory offer has been received or not. This should be done as early as possible, at app start at best.

Fine, but as far as I know the receipt is not guaranteed to be available. If no receipt can be found the user has to first provide his app store credentials to download the receipt...

It would be quite annoying if the first thing the app does on the the first start would be to ask the user to login to the store.

Is this really the intended implementation?


Problem 3 : How to handle eligibility?

Assume that I have successfully check whether the user is eligible to receive an offer or not: How to provide the offer?

Do I have to setup two different subscription products in App Store Connect (one with free trial and one without) to let the user purchase the one or the other?

Or the eligibility check only necessary to display the correct UI ("Purchase now with free trial" vs "Purchase now") while I can use the same product in both cases?

解决方案

Problem 1 : Understanding eligibility

He will be charged for the subscription immediately. Free-trial can be availed only once

Problem 3 : How to handle eligibility?

  1. Do I have to setup two different subscription products in App Store Connect (one with free trial and one without) to let the user purchase the one or the other?

    No. You only need to setup one product and add Introductory offer (free trial or intro offer)

  2. Or the eligibility check only necessary to display the correct UI ("Purchase now with free trial" vs "Purchase now") while I can use the same product in both cases?

    It is only for showing correct CTA and messaging. At the end of the day, Store(Apple) is the one who is taking the decision if user will get free-trial or not

To check eligibility of the user you need to pass the receipt to your server. Your server can then query Apple for the decoded receipt (/verifyReceipt endpoint). In decoded receipt, check all the txn in latest_renewal_info list. if you find is_in_free_trial field to be true for any product in same subscription group then you can safely assume that user has used free trial before and show right messaging to the user.

Also, user can get free trial only once per subscription group even if all the products under that have free trial enabled.

I agree that Apple would have provided eligibility in the app itself while querying the product. But trust me none of the App stores provide this information including Google.

As far as login is concerned, the receipt is always present at a sandbox location and can be retrieved from there. (Also, do consider that user anyway can't buy the subscription if he is not logged in)

这篇关于如何在免费试用期内支持/提供iOS订阅?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆