我们正在尝试在我们的应用中通过应用内购买实施订阅服务。问题是我们的服务不需要过去一年服务的用户帐户。用户只需使用此服务并显示广告。我们想给他们一个订阅,他们可以购买3个月的时间来删除广告。
如何做到这一点?我们必须做到 消费品,因为它是订阅。但我们不知道订阅何时结束。
是否有某种方式将购买与其iTunes帐户相关联?那么当他们重新安装或更换设备时,它是随身携带的吗?
答案 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个月。