【问题标题】:Questions about in-app purchasing: auto-renewable subscriptions关于应用内购买的问题:自动更新订阅
【发布时间】:2011-10-15 16:02:28
【问题描述】:

这是我的情况:我有一个免费的应用程序,我计划通过每月 0.99 美元(自动更新)的订阅来提供访问权限。

我仍在沙盒中进行测试,因此我看到自动续订订阅真正工作的方式可能会被扭曲。我的问题如下:

1) 可以支持自动续订订阅的最低 iOS 版本是多少?早期 iOS 版本的用户将如何体验上述功能?

2) 如果我理解正确,自动更新订阅被归类为“非消耗性”项目,只能购买一次。如果我尝试在到期日(或续订开始日期)之前重新购买订阅,会发生什么情况:我不会再次被收费,对吗?

3) 如果订阅自动续订,我的应用会收到通知吗?我想应用程序会自动在我的 SKPaymentTransactionObserver 中发送一个 paymentQueue:updatedTransactions: 方法调用,但在沙箱中工作时我从未见过这种情况发生。就我而言,我必须在启动期间针对购买收据的到期日期运行本地时间戳检查。

4) 如果我必须与 iTunes 服务器通信,使用我从初始购买(或连续续订)保存的收据,我如何正确检查 iTunes 订阅是否仍然有效或用户是否已经禁用自动续订?

5) 我的应用内购买项目是订阅本身,它的产品代码为应用所知......当你已经知道它是什么时,真的有必要检索产品详细信息吗? Apple 的 IAP 指南似乎很清楚我需要这样做,但对我来说似乎只是开销。

【问题讨论】:

    标签: iphone ios in-app-purchase storekit


    【解决方案1】:

    您尝试过我的 MKStoreKit 吗? http://blog.mugunthkumar.com/coding/mkstorekit-4-0-supporting-auto-renewable-subscriptions/

    第 1 点:不确定,但我最好的猜测是 iOS 4.3。

    第 2 点:当您重新购买时,AppStore 会发送一条消息,表明您已订阅该产品。从技术上讲,您不应该显示允许用户订阅的按钮(当订阅处于活动状态时禁用它,MKStoreKit 提供通知来执行此操作)

    第 3 点:是的,您的应用会收到通知。 MKStoreKit 使用此通知并自动为您存储最新收据

    第 4 点:在启动时,您应该发布您从 iTunes 服务器获得的最后一个收据,并检查它是否仍然有效。 AppStore 会返回最新收据的购买日期。从中您必须计算收据的有效性(因为您知道订阅​​的长度。请注意,iTunes App Store 服务器不会向您发送任何有关订阅长度的信息)

    第 5 点:应在应用启动时获取所有产品详细信息。否则,当客户购买并在完成之前退出应用程序(由于电话)时,您将无法知道当您的应用程序恢复时他购买了哪种产品。对于应用内购买,延迟加载实际上没有意义。

    【讨论】:

    • 这些都是经过深思熟虑的答案。谢谢。关于第 5 点,我只有一个应用内商品,所以完全不会混淆。
    • Mugunth,至第 3 点,您还没有回答他的问题(因为这也是我的问题)。你所做的只是告诉他你的框架做了什么。但是到底发生了什么,这个通知是从哪里来的呢?真的是像 Aldrich 所问和我怀疑的那样 SKPaymentTransactionObserver 吗?
    • 不过,感谢您对第 4 点的澄清。这就是我所怀疑的,但直到现在无法确认 :-)
    • SandBox:如果我尝试在短时间内购买相同的产品,有时会出现“您已订阅该产品”的警报。那么我可以以编程方式跟踪此警报吗?调试器永远不会进入 SKPaymentTransactionStateRestored!
    • 在第 (3) 点,我如何在应用程序打开时获得最新的收据,你能帮我吗
    猜你喜欢
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 2017-10-29
    • 1970-01-01
    • 2016-10-23
    相关资源
    最近更新 更多