0

我在我的应用程序中使用应用内购买。一切正常。用户可以正常购买、恢复交易。

我在恢复功能中有 1 个问题:

我该如何实现 - 用户在不购买任何项目的情况下无法恢复,因为当用户在不购买任何项目的情况下单击恢复按钮时,它会进行恢复并且应用程序被阻止。

4

2 回答 2

2

无需实现 Web 服务,只需几行代码即可解决问题 -

- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
int totalNumberOfPurchaseToBeRestored = queue.transactions.count;
if (totalNumberOfPurchaseToBeRestored == 0)
{
    //No item found for Restore"
}
else
{
        // Restore items
}

}

于 2012-12-27T05:59:18.440 回答
1

交易完成后,更新 ProductPurchased。并检查 viewDidLoad 中 ProductPurchased 的值并相应地设置恢复按钮。检查以下可能对您有帮助的代码并告诉我。

if([[[NSUserDefaults standardUserDefaults]valueForKey:@"ProductPurchased"]intValue]==1)
       restoreButton.hidden=YES;

在恢复事务完成事务方法中编写以下代码。

- (void)restoreTransaction:(SKPaymentTransaction *)transaction
{
   if([[NSUserDefaults standardUserDefaults] valueForKey:@"ProductPurchased"] == 0)
        [[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"ProductPurchased"];
   self.viewController.restoreButton.hidden=YES;
}
- (void)completeTransaction:(SKPaymentTransaction *)transaction
{
   if([[NSUserDefaults standardUserDefaults] valueForKey:@"ProductPurchased"] == 0)
        [[NSUserDefaults standardUserDefaults] setValue:@"1" forKey:@"ProductPurchased"];
   self.viewController.restoreButton.hidden=YES;
}
于 2012-12-17T06:56:46.497 回答