gpt4 book ai didi

ios - 如何处理未完成的iOS应用内购买消耗品?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:35:46 25 4
gpt4 key购买 nike

我在服务器端检查和处理(消耗品的)IAP 收据,只有在收到回复后才在应用程序上调用 [[SKPaymentQueue defaultQueue] finishTransaction:transaction]

当服务器没有返回此消息时(无论出于何种原因),应用程序将无法正确完成交易。

我现在的问题是:应用程序是否需要执行任何操作才能再次接收收据以进行重试,或者 iOS 是否通过调用 - (void)paymentQueue:(SKPaymentQueue*)queue updatedTransactions:(NSArray* )交易`?当我重新运行我的应用程序时,该项目被重新提交;但用户不需要重新启动应用。

相关问题:当​​我尝试再次(在沙盒上)购买一个仍在等待中的项目时,我收到一个 iOS 警告,说我之前购买了它但没有下载。为什么是这样?对于非消耗品,我希望(并且已经实际看到)这一点。我可以购买另一种消耗品,而之前的消耗品仍在等待中。

最佳答案

一旦您完成 CONSUMABLE IN-APP 的交易,以下方法将在那里触发添加此语句“[[SKPaymentQueue defaultQueue] finishTransaction:transaction]”以删除购买的产品。使用此语句您可以避免警告消息(我较早购买但未下载)。

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
if (transaction.downloads)
{
[[SKPaymentQueue defaultQueue]
startDownloads:transaction.downloads];
} else {
//Add the following line to remove purchased observer
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
break;

case SKPaymentTransactionStateFailed:
[[SKPaymentQueue defaultQueue]
finishTransaction:transaction];

break;

}
}
}

关于ios - 如何处理未完成的iOS应用内购买消耗品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22365835/

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