gpt4 book ai didi

ios - iOS 非消耗性应用内购买的恢复按钮

转载 作者:技术小花猫 更新时间:2023-10-29 10:34:33 26 4
gpt4 key购买 nike

很遗憾,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. 检查用户是否已经购买(用户必须输入用户名和密码)
  3. 如果用户已经购买,则恢复
  4. 如果用户尚未购买,则提示付款(用户必须再次输入密码)。

这种方法的问题是:1.额外的服务器调用2. 用户必须输入两次详细信息。

有没有人实际实现了一个他们可以演示的恢复按钮?

最佳答案

无需实现自己的逻辑只需实现此

- (IBAction)restorePreviousTransaction:(id)sender {
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
}

这将调用此方法

 - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
case SKPaymentTransactionStateRestored:
if ([self respondsToSelector:@selector(restoreTransaction:)]) {
[self restoreTransaction:transaction];
return;
}

这将为交易成功或失败调用这些委托(delegate)方法

- (void)restoreTransaction:(SKPaymentTransaction *)transaction
-(void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
-(void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue

关于ios - iOS 非消耗性应用内购买的恢复按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11113047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com