【问题标题】:How do you handle auto-renewable subscriptions in apps that have a non-Apple account system?您如何处理具有非 Apple 帐户系统的应用程序中的自动续订订阅?
【发布时间】:2020-11-26 01:46:13
【问题描述】:

我正在开发一个应用程序,该应用程序使用户能够使用我的服务上的帐户登录和注销。我还想为用户提供购买自动续订订阅的功能。

我不知道如何让用户使用我的服务上的帐户登录和退出并购买自动续订订阅,因为 StoreKit 购买与设备登录的 Apple ID 相关联,并且无法与我的服务上的帐户相关联我的系统。

例如,假设:

  • 某人拥有一部 iPhone,并在该设备上使用其 Apple ID 登录 iOS:bob@icloud.com
  • 此人下载我的应用程序,并在我的帐户系统中创建userA
  • 作为userA,他们购买了自动更新订阅。此购买存储在用户 bob@icloud.com 的 StoreKit 收据上。
  • 在不更改 Apple ID 的情况下,此人会退出我的应用并在我的系统上创建 userB
  • 此人尝试为userB 购买相同的自动续订订阅。当他们这样做时,什么也没有发生。具体来说,this code
SKMutablePayment *payment = [SKMutablePayment paymentWithProduct:[self.products objectForKey:identifier]];
//...
[[SKPaymentQueue defaultQueue] addPayment:payment];

不提示userB购买,因为就StoreKit而言,他们已经拥有它,因为他们在设备上仍然是bob@icloud.com

即使我将订阅信息存储在我的服务器上(我这样做了),我也不确定如何补救这种情况,除非我的应用的 iOS 版本只允许 Apple 登录。 这是因为 Apple 登录与设备上的当前 Apple ID 严格绑定。

这真的是让用户在同时具有 IAP 自动续订订阅的应用中的唯一方法吗?我有searched the web,好像是这样的。

【问题讨论】:

  • 每个 Apple ID 组的订阅限制为 1 个。如果您有多个用户帐户,他们将无法分别购买,除非他们来自不同的 Apple ID。
  • 谢谢。因此,基本上,在具有订阅的应用程序上创建用户帐户的唯一方法是使用 Apple 登录?这样应用登录与手机登录相同。
  • 不,您不必使用 Apple 登录。如果您使用您的注册系统。您需要为登录用户存储收据。就像说用户 A 现在已订阅。这确实给恢复带来了复杂性。如果用户 B 尝试恢复购买,那应该不起作用,您需要与用户沟通原因。
  • 使用 Apple 登录可以简化恢复。如果您的产品支持多平台,那么您仍然需要为用户保存收据,当然还需要在所有平台上支持 Apple 登录。
  • 对不起,我仍然不确定我是否理解:假设用户 A 使用我的应用程序的登录系统登录,创建自动续订订阅(使用登录的 Apple ID),然后退出.然后用户 B 使用我的应用程序的登录系统登录。即使我将用户 A 的订阅状态存储在我的服务器上,当用户 B 尝试进行订阅时,它仍然是手机本地的同一个 Apple ID(永远不会更改),因此 StoreKit 不会让用户 B 订阅。对吗?

标签: ios app-store storekit


【解决方案1】:

如果我理解,您想要做的是:

• 在您的系统上有两个用户,A 和 B

• 实际上,A 和 B 是同一个人。 (称她为“简”。)

• 事实上,简拥有(显然)相同的 iPhone,无论她是你的系统 A 还是你的系统 B。让我们将该 iPhone 称为 iPhone 7778636728637

• 您正在提供名为“dragon-eggs-renewable”的订阅

所以:

当7778636728637想买“龙蛋再生”时,

你希望能够卖掉她

• A 的“可再生龙蛋”

然后卖掉她

• B 的“可再生龙蛋”

那是完全不可能的。

“dragon-eggs-renewable”订阅只能通过电话

Sign-on-with-Apple 无关。

订阅通过电话就可以了。

但是有办法解决这个问题:

诀窍是。已说出 三个 个已命名的订阅,

  • “龙蛋可再生”
  • “龙蛋可再生供应1”
  • “龙蛋-可再生-supp2”

在您的系统中,如果他们是用户 A,则向他们出售“dragon-eggs-renewable”。

但是,如果您发现他们是用户 B,向他们出售“dragon-eggs-renewable-supp1”

你明白我的意思吗?

出售多个订阅并不少见。 (例如“powerup1”...“powerup2”...等)

希望它有效,希望我能理解!

除非在 2020 年末出现与 Apple 签约有关的新内容,否则情况就是如此!

【讨论】:

  • 谢谢。我明白你的意思了。这就是我所怀疑的,基本上只是想确认是这种情况(我在问题的末尾添加了一个链接,似乎支持这一点)。我很欣赏你的 hack,但我不认为我会仅仅因为它看起来比它的价值更多的麻烦而实施它;对我来说现在做这样的事情真的太复杂了。所以最干净的方法是只在我的应用程序上支持 Apple 登录?这样设备 Apple ID 和我的应用用户之间存在严格的一对一关系?
猜你喜欢
  • 2012-06-22
  • 2015-02-27
  • 2014-10-22
  • 2018-05-19
  • 1970-01-01
  • 2018-08-28
  • 2017-06-16
  • 2018-01-03
  • 1970-01-01
相关资源
最近更新 更多