首页 文章

在应用内购买中恢复功能

提问于
浏览
0

我在我的应用程序中使用应用内购买 . 一切都很好 . 用户可以正确购买,恢复交易 .

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

我如何实现 - 用户无法在不购买任何商品的情况下进行恢复,因为当用户点击恢复按钮而不购买任何商品时,则会进行恢复,应用程序将被阻止 .

2 回答

  • 1

    无需实施网络服务,只需几行代码即可解决问题 -

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

    }

  • 2

    您的交易完成后,请更新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;
    }
    

相关问题