我在我的应用程序中使用应用内购买 . 一切都很好 . 用户可以正确购买,恢复交易 .
我在恢复功能中有1个问题:
我如何实现 - 用户无法在不购买任何商品的情况下进行恢复,因为当用户点击恢复按钮而不购买任何商品时,则会进行恢复,应用程序将被阻止 .
无需实施网络服务,只需几行代码即可解决问题 -
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue { int totalNumberOfPurchaseToBeRestored = queue.transactions.count; if (totalNumberOfPurchaseToBeRestored == 0) { //No item found for Restore" } else { // Restore items }
}
您的交易完成后,请更新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; }
2 回答
无需实施网络服务,只需几行代码即可解决问题 -
}
您的交易完成后,请更新ProductPurchased . 并在viewDidLoad中检查ProductPurchased的值并相应地设置恢复按钮 . 请查看以下代码,这些代码可以帮助您并告知我们 .
在还原事务完成事务方法中编写以下代码 .