是否可以通过应用内购买将订阅绑​​定到iTunes帐户?

时间:2010-03-16 15:48:56

标签: iphone

我们正在尝试在我们的应用中通过应用内购买实施订阅服务。问题是我们的服务不需要过去一年服务的用户帐户。用户只需使用此服务并显示广告。我们想给他们一个订阅,他们可以购买3个月的时间来删除广告。

如何做到这一点?我们必须做到 消费品,因为它是订阅。但我们不知道订阅何时结束。

  • 我们无法在本地保存州 因为用户可能会重新安装应用程序
  • 我们无法在服务器上保存状态并将其绑定到他们的设备,因为有时用户会更改设备
  • 我们没有用户帐户来绑定订阅,我们不想引入破坏体验的用户帐户系统。

是否有某种方式将购买与其iTunes帐户相关联?那么当他们重新安装或更换设备时,它是随身携带的吗?

3 个答案:

答案 0 :(得分:1)

如何将其与Facebook或Twitter帐户相关联?然后你就把“创建帐户”变成了社交网络功能。

编辑:

您正在寻找的内容最有可能存储在系统范围的钥匙串中。不幸的是,我上次检查时没有开发人员访问该系统范围的钥匙串,但我可能是错的。值得注意的是,您可以操纵自己的访问组,有关详细信息,请参阅GenericKeychain示例。

答案 1 :(得分:0)

您可以尝试使用它来访问iTunesMetadata.plist,其中appleId密钥包含用于下载应用程序的applestore ID。

[NSHomeDirectory() stringByAppendingPathComponent:@"iTunesMetadata.plist"]

当然,这可能被视为无证件,Apple会在未来的更新中将其打破,或者拒绝您的应用。

答案 2 :(得分:-1)

您的问题很奇怪,因为购买 IS 与iTunes用户帐户相关联。 假设用户从手机中删除了应用程序并重新安装,他可以取回所有订阅(存储在苹果端的iTunes帐户中)。

此机制在apple的文档中被描述为“恢复事务”(这取决于支持和实现它的应用程序):http://developer.apple.com/iphone/library/documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html#//apple_ref/doc/uid/TP40008267-CH3-SW2

您可以从应用中查询用户的itunes帐户,并询问“此用户目前购买的产品是什么?”

然后,在恢复事务时,您将获得对SKPaymentTransaction(作为属性)查询的所有transactionDate的引用。这将为您提供用户购买耗材的信息 WHEN

通过它,您还可以获得使用aPaymentTransaction.payment.productIdentifier

购买的产品

如果您知道此产品标识符是3个月的订阅,您可以比较其交易日期和当前日期,并检查这是否低于3个月。