iOS 开发每天分享优质文章iOS 内购iOS开发攻城狮的集散地

iOS内购IAP(十六) —— 添加介绍性定价选项(一)

2019-01-24  本文已影响95人  刀客传奇

版本记录

版本号 时间
V1.0 2019.01.24 星期四

前言

大家都知道,iOS虚拟商品如宝石、金币等都需要走内购,和苹果三七分成,如果这类商品不走内购那么上不去架或者上架以后被发现而被下架。最近有一个项目需要增加内购支付功能,所以最近又重新集成并整理了下,希望对大家有所帮助。感兴趣的可以参考上面几篇。
1. iOS内购IAP(一) —— 基础配置篇(一)
2. iOS内购IAP(二) —— 工程实践(一)
3. iOS内购IAP(三) —— 编程指南之关于内购(一)
4. iOS内购IAP(四) —— 编程指南之设计您的应用程序的产品(一)
5. iOS内购IAP(五) —— 编程指南之检索产品信息(一)
6. iOS内购IAP(六) —— 编程指南之请求支付(一)
7. iOS内购IAP(七) —— 编程指南之促进应用内购买(一)
8. iOS内购IAP(八) —— 编程指南之提供产品(一)
9. iOS内购IAP(九) —— 编程指南之处理订阅(一)
10. iOS内购IAP(十) —— 编程指南之恢复购买的产品(一)
11. iOS内购IAP(十一) —— 编程指南之准备App审核(一)
12. iOS内购IAP(十二) —— 一个详细的内购流程(一)
13. iOS内购IAP(十三) —— 一个详细的内购流程(二)
14. iOS内购IAP(十四) —— IAP的收据验证(一)
15. iOS内购IAP(十五) —— IAP的收据验证(二)

开始

首先看些写作环境

Swift 4.2, iOS 12, Xcode 10

在本教程中,您将学习如何向已提供自动续订订阅的应用添加介绍性定价选项。

假如,你有一个很棒的应用程序,提供了令人喜欢的,基于订阅的内容。 用户喜欢你的应用程序,无法理解他们没有它的生活方式。 问题是,即使有付费用户的好评,也很难让新用户直接下定决心订阅。

你能为这个做什么? 我很高兴你问!

Apple现在提供入门定价(Introductory Pricing)以吸引新用户。

使用介绍性定价,您可以在订阅开始时的有限时间内提供折扣价或免费试用。 听起来像这可能是你所有问题的解决方案,对吧?

在本教程中,您将学习如何向已提供自动续订订阅的应用添加介绍性定价选项。

要尝试这个很酷的新功能,您可以使用自己的应用程序已经提供自动续订订阅或使用这个Words of Wisdom by Winnie the Pooh应用程序。 小心,小熊维尼引用很容易上瘾,所以谨慎使用这个应用程序。

如果您决定使用自己的应用程序,请跳至Introductory Pricing Types。 如果您打算使用PoohWisdom应用程序,请继续进行Setting up the Project

PoohWisdom应用程序非常简单:它有一个带有小熊维尼图像的屏幕,一个用于在成功购买后显示引语的标签或一条鼓励用户购买的消息,以及两个按钮:PurchaseRestore

该应用程序提供单一,可自动更新的订阅应用程序内购买或IAP。 接下来,您将学习如何为此IAP添加介绍性定价。


Setting up the Project

打开初始项目,然后构建并运行项目。 要使用该应用程序,您还需要设置自动续订订阅。 请执行下列操作:

注意:创建自动续订订阅时,App Store Connect会要求您定义订阅组(Subscription Group)。 Apple在2016年推出了订阅组,作为解决订阅主要问题的一种方式。 订阅组允许用户修改其订阅而无需先取消订阅,并且可以防止意外同时订阅。

订阅组实际上是订阅产品的集合,这些订阅产品在订阅管理菜单上组合在一起。 订阅组中只有一个产品可以在给定时间处于活动状态。 每个订阅组只能使用一次介绍价格(introductory price)

好的,回到项目! 请执行下列操作:

构建并运行项目。 这是您应该在项目控制台中看到的内容:

Not purchased: $MyIAPID
Loaded list of products...
Found product: $MyIAPID $GroupID $Pricing

如果你看到这一点,那你就准备好了下一步! 如果没有,请确保您没有错过任何内容:

如果其他一切看起来都正确并且您仍然没有收到产品,请确保您不需要接受App Store Connect中的任何协议。 令人困惑的是,如果您有未完成的协议,Apple可能会为IAP产品返回空的响应,而不是失败。

暂时不要点按Purchase

如果您已完成购买,那没关系。 毕竟,我们都是人。但是,遗憾的是,您需要在App Store Connect中创建另一个沙盒用户。


Introductory Pricing Types

每个周期可以为每个订阅提供三种类型的介绍性定价:

例如,您可以提供三个月每月1.99美元的折扣价,从第四个月开始每月标准订阅价为3.99美元。

例如,如果您想提供每月订阅,但您认为用户需要大约六个月的时间来适应体验并且更有可能保留订阅,您可以提供6个月的入门价格9.99美元,然后是从第七个月开始每月3.99美元的标准价格。

请注意,您不必使用与介绍价格和常规订阅相同的时间长度。因此,例如,您可以提供六个月的介绍价格,然后是年度订阅。

这样,您的用户就可以在第一次结算之前取消选项。如果您对自己的应用提供的内容充满信心,但难以说服潜在的订阅者,花钱订阅是值得的,这是一个让他们自己决定的低​​风险选项。

无论您选择使用哪种类型,一旦介绍期结束,订阅将以正常价格续订。


Determining User Eligibility

在向用户显示折扣价之前,您必须确保特定的当前用户符合折扣价格。

您如何知道用户是否符合条件?好问题!

查看用户过去的交易,看看他们过去是否已使用同一订阅组的折扣。如果是这样,则用户没有资格享受折扣价。

免责声明:本教程的示例应用程序不执行收据验证。相反,它会将产品的购买状态保存在NSUserDefaults中。在现实生活中的应用程序中,您应该执行某种收据验证,以确保购买发生并且钱转手。 Apple建议您在自己的服务器上执行此操作,但有一些方法可以在本地执行此操作。

您可以在Apple’s documentation中阅读有关收据验证的更多信息。

您不是专注于本教程中的收据验证,而是要在您的服务器上实现上述说明,您在App Store服务器的JSON响应中需要的字段是:latest_receipt_info,其值是包含所有应用内购买的数组事务,以及每个相关交易的收据receipt字段中的is_trial_periodis_in_intro_offer_period字段。

要确定用户的资格,请检查所有IAP交易的订购试用期(Subscription Trial Period)和订购初始价格期(Subscription Introductory Price Period)的值。如果给定订阅的任一这些字段的值为true,则该用户不符合同一订阅组中任何产品的介绍价格。

新用户始终有资格获得所提供的入门价格,而失效用户(过去曾订阅过的用户)只有在尚未使用此订阅或其他同类产品的情况下才有资格获得介绍价格。


Offering Introductory Pricing to Eligible Users

好的,所以现在你要为你的IAP添加一个介绍价格。 好极了!

App Store Connect上,转到My Apps,然后选择要添加介绍价格的应用程序。 然后,转到Features ▸ In-App Purchases并选择正确的自动续订订阅。

然后,按下Subscription Prices旁边的+,然后选择Set Up Introductory Price

现在,您需要选择适用新介绍价格的地区。 默认情况下,将选择所有地区。 出于本教程的目的,并允许您在下一部分中测试各种成功和失败状态,请取消选择All Territories并仅选择United States,如下图所示。

Next。 现在,您需要为新的介绍价格设置开始日期和结束日期。 选择今天的日期作为开始日期和选择No End Date作为结束日期,然后按Next

选择Free trial并将持续时间设置为3天。 这意味着您的用户可以在开始支付标准订阅价格之前三天免费访问您应用的内容。 按Done,然后按右上角的Save

您刚刚为自动续订订阅设置了入门价格。 我们将在一分钟内讨论介绍性定价的用户体验影响,但从技术上讲,您已经完成了所有工作。 下面准备好测试这个新功能。


Testing

现在一切都已设置好,你应该测试一下。 还记得您之前创建的沙箱用户吗? 现在是时候使用它了! 请注意,虽然您可以在模拟器上获取可用IAP列表,但要测试实际购买,您需要一个物理设备。

在您的设备上运行该应用,点击Purchase,您将看到此提醒:

输入尚未购买此订阅的沙箱帐户的详细信息,然后点按Continue

注意:从iOS 12开始,登录沙盒帐户时不再需要退出生产帐户! 它现在是“设置”应用的iTunes & App Store选项中的单独项目。 这是一个巨大的进步,特别是在测试自动续订订阅时。

您现在应该看到此alert:

一旦你点击OK,你就会得到小熊维尼的随意智慧词:“If you live to be a hundred, I want to live to be a hundred minus one day so I never have to live without you”,这就是一个 聪明的熊。

您还应检查导致事务失败的一些流。 例如,从设备卸载应用程序,重新安装它,并尝试使用相同的沙箱用户购买相同的订阅。 由于此用户过去购买了该项目,因此您应该收到此警报,然后是失败消息:

现在,再次卸载并重新安装应用程序,并尝试使用相同的沙箱用户还原IAP。在这种情况下,您将获得相同的alert,但随后将成功恢复。

在生产应用程序中,一旦您意识到用户过去已购买它,您应该立即尝试恢复购买。至少,为用户提供良好的后备显示,以便清除当前状态。在这个示例应用程序中,我们保持简单,以便您可以轻松检查失败状态。

您可以通过选择iTunes & App Stores,在设备的“设置”中查看您当前登录的沙盒用户。在那里,您将在顶部看到您的真实帐户,在底部看到当前的沙盒帐户。

此外,您应该测试不同的场景。考虑一个用户:


Introductory Pricing Best Practices

要将Introductory Pricing添加到已具有自动续订订阅的应用程序,您不必对代码进行任何更改。您可以在App Store Connect中进行相关更改,让Apple负责其余部分。但是,如果您真的想要充分利用这种吸引用户订阅的新方式,您可能需要进行一些UI / UX更改,以确保潜在买家了解您的应用提供的介绍价格。

Apple Human Interface Guidelines about In-App Purchase明确指出:“在提供介绍价格时,请说明介绍价格,优惠期限以及用户在优惠结束后支付的标准价格。”

在向App Store中已有的应用添加介绍价格时,请考虑以下几点:

我强烈建议您查看Apple的Introductory Pricing Documentation和WWDC 2018中的Best Practices and What’s New with In-App Purchases

此外,请务必查看Apple的收据验证文档(Receipt Validation documentation),了解有关如何验证收据的更多详细信息。 这对于确定用户是否有资格获得介绍价格是必要的。

介绍定价是您的IAP工具箱的一个很好的补充,可以帮助您吸引新订阅者。

与其他类型的IAP一样,不要忘记Apple的指导原则 - 允许用户恢复购买,优雅地失败并提供出色的用户体验,即使对于不合格的用户也是如此。 只要您在设计和开发应用时牢记用户,您和您的用户都将从中受益。

后记

本篇主要讲述了添加介绍性定价选项,感兴趣的给个赞或者关注~~~

上一篇 下一篇

猜你喜欢

热点阅读