首页 文章

从未付费的用户恢复应用内购买

提问于
浏览
6

我正在尝试在我的应用中测试应用内购买 .

当我通过购买应用内购买的测试用户恢复应用内购买时,一切正常 .

但是当我尝试使用 didn't 进行应用内购买的用户恢复应用内购买时,我希望框架调用以下方法:

-paymentQueue:restoreCompletedTransactionsFailedWithError:

但是框架调用:

-paymentQueueRestoreCompletedTransactionsFinished:

喜欢我的测试用户已经购买了应用内购买....

这是正常行为吗?如果是这样,我如何在没有购买应用内购买的情况下测试用户尝试恢复?

3 回答

  • 7

    看到这里的答案:iOS in-app-purchase restore returns many transactions

    您必须在事务观察器中处理它 .

    简而言之,您启动恢复过程:

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];
    [[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
    

    然后调用以下事务观察器:

    - (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
    {
        int thisIsTheTotalNumberOfPurchaseToBeRestored = queue.transactions.count;
    
        for (SKPaymentTransaction *transaction in queue.transactions)
        {
            NSString *thisIsProductIDThatHasAlreadyBeenPurchased = transaction.payment.productIdentifier;
    
            if([thisIsProductIDThatHasAlreadyBeenPurchased isEqualToString:product1ID])
            {
                //Enable product1 here
            }
        }
    }
    
  • 1

    尝试MKStoreKit框架https://github.com/MugunthKumar/MKStoreKit这是非常好的,维护良好的框架 . 我有一些应用内购买的应用 . 从来没有这样的问题 .

  • 0

    @Tibidabo我不推荐使用MKStoreKit,因为它在恢复购买物品功能方面有很大的hole .

相关问题