0

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

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

1 回答 1

2

我查看了文档和源代码

restoreTransactionsOnSuccess的成功块需要一个事务数组。
好奇的头脑很自然地会问它存在的原因。

容易发现数组中填充了SKPaymentTransaction类型的对象

此类的一个不错的属性是transactionDatetype NSDate,这就是您想要的。


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

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

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

}];
于 2016-04-22T21:40:49.123 回答