2011-07-29 90 views
4

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

我仍然在沙盒测试,所以路上我看到如何自动再生订阅真正的工作可能会失真。我下面的问题如下:

1)什么是iOS版的最低版本,可支持自动再生订阅?早期iOS版本的用户如何体验上述功能?

2)如果我的理解是正确地进行自动再生订阅列为“非消耗”项目,可以一次买了。当我在尝试重新购买订阅之前(或更新设置为启用日期)时,会发生什么情况:我不会再收取费用,对吗?

3)如果订阅自动更新,我的应用程序是否会收到通知?我想应用程序会自动在我的SKPaymentTransactionObserver中发送一个paymentQueue:updatedTransactions:方法调用,但我在沙箱中工作时从未看到过这种情况。在我的情况下,我必须在启动期间对购买收据的到期日进行本地时间戳检查。如果我必须使用从初始购买(或从连续续订)保存的收据与iTunes服务器进行通信,如果订阅仍处于活动状态,或者用户有已禁用自动更新?

5)我的应用程序内购买产品的认购本身,其产品代码是已知的应用程序......真的有必要检索产品的详细信息时,你已经知道它是什么?苹果的IAP指南似乎让我很清楚,我需要这样做,但它似乎只是我的开销。

回答

10

你试过用我的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点:所有产品应用程序启动时应该获取详细信息。否则,当客户进行购买并且在完成之前,他退出应用程序(由于打电话),当您的应用程序恢复时,您将无法知道他购买了哪个产品。延迟加载对于应用内购买并不合适。

+1

这些都是深思熟虑的答案。谢谢。关于第5点,我只有一个应用内产品,所以不会有任何混淆。 –

+0

Mugunth,到第3点你还没有回答他的问题(因为这也是我的问题)。你所做的只是告诉他你的*框架是做什么的。但是到底发生了什么,这个通知到达了什么地方?奥尔德里奇问道,它真的是SKPaymentTransactionObserver吗?我也怀疑过吗? – Rich

+0

尽管如此,感谢第4点的澄清。这就是我所怀疑的,但直到现在还不能确认:-) – Rich

相关问题