我们最近收到了一些电子邮件,用户抱怨在应用内购买耗材双重费用。我不知道,这怎么可能。此外,似乎只有少数用户遇到这种问题。但如果这样做,它会发生多次。 我错过了什么吗?默认情况下数量为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;
}
}
}
答案 0 :(得分:0)
我有类似的问题,在我的情况下问题不在代码中。
有一天,我看到很多退款。
问苹果,那说是由于技术问题。现在问题解决了。 退款是针对双倍的应用内费用。
没有别的信息....感谢您的考虑,Apple