iOS In App Purchase - 一些用户获得双倍收费

时间:2013-01-16 10:50:32

标签: ios in-app-purchase

我们最近收到了一些电子邮件,用户抱怨在应用内购买耗材双重费用。我不知道,这怎么可能。此外,似乎只有少数用户遇到这种问题。但如果这样做,它会发生多次。 我错过了什么吗?默认情况下数量为1,不是吗? 您是否遇到过双重费用的问题?我发现很多用户抱怨因各种应用程序被双重收费。这是Apple / iTunes的问题还是许多开发人员做错了什么?

以下是交易的相关代码。我一次只允许一个事务,使用成员变量 transactionRunning 并检查SKPaymentQueue队列中有多少事务。

任何评论或经验将不胜感激。 任何帮助解决这个问题都将受到高度赞赏。

- (void)purchaseProduct:(NSString*)productIdentifier
{
    NSArray * array = [SKPaymentQueue defaultQueue].transactions;
    if (transactionRunning == false && [array count] == 0)
    {
        transactionRunning = true;      
        SKPayment *payment = [SKPayment paymentWithProductIdentifier:productIdentifier];
        [[SKPaymentQueue defaultQueue] addPayment:payment];
    }
}

- (void)finishTransaction:(SKPaymentTransaction *)transaction wasSuccessful:(BOOL)wasSuccessful
{    
    transactionRunning = false;
    [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
    for (SKPaymentTransaction *transaction in transactions)
    {        
        switch (transaction.transactionState)
        {
            case SKPaymentTransactionStatePurchasing:
                break;
            case SKPaymentTransactionStatePurchased:
                [self provideContent:transaction.originalTransaction.payment.productIdentifier];
                [self finishTransaction:transaction wasSuccessful:YES];
                break;
            case SKPaymentTransactionStateFailed:
                [self failedTransaction:transaction];
                break;
            case SKPaymentTransactionStateRestored:
                [self restoreTransaction:transaction];
                break;
            default:
                break;
        }
    }
} 

1 个答案:

答案 0 :(得分:0)

我有类似的问题,在我的情况下问题不在代码中。

有一天,我看到很多退款。

问苹果,那说是由于技术问题。现在问题解决了。 退款是针对双倍的应用内费用。

没有别的信息....感谢您的考虑,Apple

相关问题