获取 IAP 原始购买日期?

Get IAP original purchase date?

我想知道是否有任何方法可以获取消耗品、非经常性应用内购买的原始购买日期。我应用中的 IAP 有效期为 3 个月。但是,当用户删除应用程序然后恢复他的购买时,我找不到任何方法来获取原始购买日期以查看 3 个月是否已经过去。有什么想法吗?

[[RMStore defaultStore] restoreTransactionsOnSuccess:^(NSArray *transactions) {
    [[Game user] boughtFish];
    NSLog(@"Transactions restored");
} failure:^(NSError *error) {
    NSLog(@"Something went wrong");
}];

我查看了文档并 source code

restoreTransactionsOnSuccess 的成功块采用 交易数组
好奇的头脑自然会问它存在的原因。

easily found that the array is filled with objects of type SKPaymentTransaction

其中一个不错的 属性 class 是 transactionDate 类型 NSDate,这就是您想要的。


一个简单的概念证明[需要编译和测试]在这里

[[RMStore defaultStore] restoreTransactionsOnSuccess:^(NSArray* transactions) 
{
    NSLocale* dateLocale = [NSLocale autoupdatingCurrentLocale];

    for (SKPaymentTransaction* t in transactions)
        NSLog(@"%@", [t.transactionDate descriptionWithLocale: dateLocale]); 
} 
failure:^(NSError* error) 
{

}];