菜鸟教程小白 发表于 2022-12-12 20:01:59

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


                                            <p><p>我在服务器端检查和处理 IAP 收据(消耗品),只有在应用程序恢复正常时才调用 <code>[ finishTransaction:transaction]</code>。</p>

<p>当服务器没有返回这个正常(无论出于何种原因)时,应用程序将无法正确完成事务。</p>

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

<p>相关问题:当​​我尝试再次(在沙盒上)购买仍待处理的项目时,我收到一条 iOS 警报,说我之前购买了它,但没有下载。为什么是这样?对于非消耗品,我期望(并且实际上已经看到)这一点。我可以再买一个消耗品,但之前的那个还在等待中。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>一旦你完成了 CONSUMABLE IN-APP 的交易,下面的方法就会触发,添加这个语句“[finishTransaction:transaction]”来删除购买的产品。使用这个语句可以避免警告消息(I之前买过但没有下载)。 </p>

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

      case SKPaymentTransactionStateFailed:
            [
             finishTransaction:transaction];

            break;

    }
}
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何处理未完成的iOS应用内购买消耗品?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/22365835/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/22365835/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何处理未完成的iOS应用内购买消耗品?