不幸的是,Apple 拒绝了我的应用程序,因为它没有恢复按钮。我想为用户提供无缝体验,但存在一些问题。
- (void)purchaseProUpgrade
{
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
// User is prompted for iTunes username and password here (1)
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}
// Then this delegate Function Will be fired
- (void) paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
{
if( queue.transactions.count == 0 ) {
[self setUpgradeProductId];
// User is prompted for iTunes username and password here (2)
SKPayment *payment = [SKPayment paymentWithProductIdentifier:kInAppPurchaseProUpgradeProductId];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}else {
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerTransactionSucceededNotification object:self userInfo:NULL];
}
}
以上是一个好的解决方案吗?逻辑是:
- 用户按下按钮删除应用内购买。
- 检查用户是否已经购买(用户必须输入用户名和密码)
- 如果用户已经购买,则恢复
- 如果用户还没有购买,提示支付(用户必须再次输入密码)。
这种方法的问题是: 1. 额外的服务器调用 2. 用户必须输入两次详细信息。
有没有人真正实现了他们可以演示的恢复按钮?