繁体   English   中英

恢复已经在iPhone上购买了应用内购买?

[英]Restore already bought in-app-purchases on iPhone?

我到目前为止:重新安装后,用户需要点击“购买功能”,然后他会被0.99美元的问题吓到,然后必须登录然后才被告知该功能已经购买并且他免费获得。

我知道苹果是一种宗教,用户是坚定的信徒,但是不是更好的方法吗? :-)我想要的是检查功能而不实际购买它。 让用户输入他的帐户信息似乎是必要的,也许买一个0.00美元的功能? 或者有某种方法可以做到这一点吗?

我正在使用MKStoreKit进行整个In-App-Purchase,但任何解决方案都会很棒。


UPDATE

thanx到darvids0n,你的方法解决了我的问题! 这是其他人尝试相同的工作代码:

- (void)removePreviousPurchases { //just for sandbox testing
    [[MKStoreManager sharedManager] removeAllKeychainData];
}

- (void)restorePreviousPurchases { //needs account info to be entered
    if([SKPaymentQueue canMakePayments]) {
        [[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
             NSLog(@"Restored.");
             /* update views, etc. */
        }
        onError:^(NSError *error) {
            NSLog(@"Restore failed: %@", [error localizedDescription]);
            /* update views, etc. */
        }];
    }
    else
    {
        NSLog(@"Parental control enabled");
        /* show parental control warning */
    }
}

如果0.99美元的商品是非消耗品,那么您应该提供一个“恢复购买”按钮(或类似的)调用

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

假设您已经添加了一个事务观察器,并实现了协议,包括处理已恢复事务的案例(状态为SKPaymentTransactionStateRestored ),这将起作用。

添加以下两种方法:

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

[[SKPaymentQueue defaultQueue]restoreCompletedTransactions];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM