恢复订阅购买了自动再生订阅
问题描述:
当我购买我的应用程序以前购买的“自动再生订阅”,它说恢复订阅购买了自动再生订阅
You're currently subscribed to this...
当我点击确定,在支付的委托队列..
- (void) paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction * transaction in transactions)
{
switch (transaction.transactionState)
{
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction]; // Why this is called?
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
default:
break;
}
}
}
的transaction.transactionState返回是SKPaymentTransactionStateFailed instea d的SKPaymentTransactionStateRestored,这是正常的吗?
那么我该如何正确处理?
答
我有同样的问题,我不认为有任何方法可以区分此事件与其他错误(它返回错误代码SKErrorPaymentCancelled
)。我认为唯一可以处理的方法是使用“恢复购买”按钮,并在用户按下时拨打[[SKPaymentQueue defaultQueue] restoreCompletedTransactions]
。
答
实际上,您无法确定用户是否已订阅。你应该有订阅按钮,新用户用于订阅,和恢复按钮已订阅的用户。
而当您获得SKPaymentTransactionStateFailed
时,您可以显示一条消息,建议使用还原按钮以防止用户已订阅。