这是我的情况:我有一个免费的应用程序,我打算通过每月0.99美元(可自动更新)的订阅提供访问权限。
我仍然在沙盒中进行测试,因此我看到自动续订订阅如何真正起作用的方式可能会被扭曲。我的问题如下:
1)支持自动续订订阅的iOS的最低版本是多少?早期iOS版本的用户将如何体验所述功能?
2)如果我理解正确,可自动更新的订阅被归类为“非消费品”,只能购买一次。当我尝试在到期日之前重新购买订阅时(或续订被设置为启动的日期)会发生什么:我不会再收费,是吗?
3)如果订阅自动续订,我的应用会收到通知吗?我想这个应用程序将自动发送到我的SKPaymentTransactionObserver中的paymentQueue:updatedTransactions:方法调用,但我在沙盒中工作时从未能看到这种情况。在我的情况下,我必须在启动期间针对购买收据的到期日期运行本地时间戳检查。
4)如果我必须与iTunes服务器通信,使用我从初次购买(或连续续订)中保存的收据,如果订阅仍处于活动状态或用户已经处于活动状态,如何正确检查iTunes禁用自动续订?
5)我的应用程序内购买项目是订阅本身,其产品代码为应用程序所知...当您已经知道它是什么时,是否真的有必要检索产品详细信息? Apple的IAP指南似乎很明显我需要这样做,但这对我来说似乎只是开销。
答案 0 :(得分: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点:应用程序启动时应提取所有产品详细信息。否则,当客户进行购买并在完成之前退出应用程序(由于打电话),您将无法知道在您的应用程序恢复时他购买了哪种产品。使用应用程序内购买延迟加载并不合理。