iOS & Firebase 自动续订订阅
iOS & Firebase Auto-renewable Subscriptions
我的问题:
我很难找到一种使用 Firebase 在 iOS 中安全管理自动续订订阅的方法。
购买流程:
- 用户 1 购买了订阅
- 使用订阅标识符更新用户 1 在 Firebase 上的帐户
(用于解锁内容)
- 存储 original_transaciton_identifier(OTI) w/ User1 的 uid 以匹配 w/来自 Apple 的收据验证。
- 授予用户访问权限
边缘情况导致我的大脑崩溃:
- 用户 1 注销用于购买订阅的 AppleId,但仍使用 Firestore 凭据登录到应用程序。
- 因此,当我去验证订阅是否已过期时,它不是 return 有效的订阅。我希望用户能够保留他们的访问权限,直到它过期或被取消。有什么实现此目的的技巧吗?
- 用户 2 登录用户 1 之前使用的同一设备。
- 因此,两个用户使用的是同一个 AppleId。我可以检查当前用户是否有订阅,并检查 OTI 以查看它是否对应于 User2...它不会。
- 我们将显示 'purchase iAPs' 屏幕,但是如果该用户也想在同一个 AppleId 下购买订阅怎么办? "Apple Id already connected with another account or something"这句话我处理正常吗?
我能找到的相关文章:
How to tie auto-renewable subscriptions to in house user, not appled id
我已经为此苦苦挣扎了一段时间,一直找不到很多资源。感谢所有帮助。
对于案例 #1:
当您尝试访问收据时,Apple 将触发登录提示,要求用户输入他们的 iTunes 凭据。如果收据仍然不可用,您将无法验证订阅状态。 "right" 的方法是将整个收据存储在您的服务器上,并使用 /verifyReceipt
定期刷新它。您将检查订阅是否已取消,并更新 expiration_date
以便您知道何时切断用户的访问权限。
对于案例 #2:
Is it normal for me to handle this saying, "Apple Id already connected
with another account or something"?
是的!如果您能够查看其他一些大型订阅应用程序如何处理此问题(Netflix、Spotify、HBO 等)——它与您所描述的类似。如果您在服务器上维护订阅状态(如#1 中所述),而不是每次都在本地检查收据,这只会在用户尝试 "Restore Purchases".
时发生
这是一个非常极端的情况,因为没有多少人尝试在他们的朋友 phone 上购物,并且在大多数情况下需要 TouchID/FaceID - 所以它更像是一种防欺诈功能.一旦您获得了数百万用户,您就可以开始幻想并向他们发送一封自动电子邮件 link 如果您检测到这一点,请他们注册 Stripe。
选择:
RevenueCat can handle all the subscription tracking and these edge cases out-of-the-box, and it plays nice with Firebase。 免责声明:我在那里工作。
我的问题:
我很难找到一种使用 Firebase 在 iOS 中安全管理自动续订订阅的方法。
购买流程:
- 用户 1 购买了订阅
- 使用订阅标识符更新用户 1 在 Firebase 上的帐户 (用于解锁内容)
- 存储 original_transaciton_identifier(OTI) w/ User1 的 uid 以匹配 w/来自 Apple 的收据验证。
- 授予用户访问权限
边缘情况导致我的大脑崩溃:
- 用户 1 注销用于购买订阅的 AppleId,但仍使用 Firestore 凭据登录到应用程序。
- 因此,当我去验证订阅是否已过期时,它不是 return 有效的订阅。我希望用户能够保留他们的访问权限,直到它过期或被取消。有什么实现此目的的技巧吗?
- 用户 2 登录用户 1 之前使用的同一设备。
- 因此,两个用户使用的是同一个 AppleId。我可以检查当前用户是否有订阅,并检查 OTI 以查看它是否对应于 User2...它不会。
- 我们将显示 'purchase iAPs' 屏幕,但是如果该用户也想在同一个 AppleId 下购买订阅怎么办? "Apple Id already connected with another account or something"这句话我处理正常吗?
我能找到的相关文章:
How to tie auto-renewable subscriptions to in house user, not appled id
我已经为此苦苦挣扎了一段时间,一直找不到很多资源。感谢所有帮助。
对于案例 #1:
当您尝试访问收据时,Apple 将触发登录提示,要求用户输入他们的 iTunes 凭据。如果收据仍然不可用,您将无法验证订阅状态。 "right" 的方法是将整个收据存储在您的服务器上,并使用 /verifyReceipt
定期刷新它。您将检查订阅是否已取消,并更新 expiration_date
以便您知道何时切断用户的访问权限。
对于案例 #2:
Is it normal for me to handle this saying, "Apple Id already connected with another account or something"?
是的!如果您能够查看其他一些大型订阅应用程序如何处理此问题(Netflix、Spotify、HBO 等)——它与您所描述的类似。如果您在服务器上维护订阅状态(如#1 中所述),而不是每次都在本地检查收据,这只会在用户尝试 "Restore Purchases".
时发生这是一个非常极端的情况,因为没有多少人尝试在他们的朋友 phone 上购物,并且在大多数情况下需要 TouchID/FaceID - 所以它更像是一种防欺诈功能.一旦您获得了数百万用户,您就可以开始幻想并向他们发送一封自动电子邮件 link 如果您检测到这一点,请他们注册 Stripe。
选择:
RevenueCat can handle all the subscription tracking and these edge cases out-of-the-box, and it plays nice with Firebase。 免责声明:我在那里工作。