iOS:SKPaymentTransactionStateRestored originalTransaction == nil

时间:2011-12-14 08:39:01

标签: ios in-app-purchase

我有一个具有自动续订订阅的应用程序,购买这些订阅服务很好,但是如果用户删除应用程序并尝试在以后恢复订阅,我将无法获取&#39 ; d期待。

根据apple docs,我应该收到一份原始交易,其中包含初始交易的详细信息,在大多数情况下和沙箱上,这正是发生的情况,但是对于我们的一些客户,我们收到的实时应用程序为零originalTransaction的值。

任何人都可以想到为什么我不会收到originalTransaction回来?在[transaction transactionDate]中发回的日期与我对[[transaction originalTransaction] transactionDate]的期望相同但是我不知道如果原始事务是零,是否可以安全地假设[transaction transactionDate]将始终是originalTransaction的日期。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我通过检查原始交易是否为零返回当前交易来解决它。

这是我在- (void)restoreTransaction:(SKPaymentTransaction *)transaction

中替换的代码
if (transaction.originalTransaction.payment.productIdentifier) {
    [self provideContentForProductIdentifier:transaction.originalTransaction.payment.productIdentifier];
} else {
    [self provideContentForProductIdentifier:transaction.payment.productIdentifier];
}