菜鸟教程小白 发表于 2022-12-12 21:52:12

ios - 应用内购买恢复功能


                                            <p><p>任何人都知道如何使用 IAP 进行恢复选项。</p>

<p>我使用非消耗品进行购买。</p>

<p>我知道我必须实现这个委托(delegate)方法:</p>

<pre><code>- (void)restoreTransaction:(SKPaymentTransaction *)transaction
- (void)paymentQueue:(SKPaymentQueue *)queue restoreCompletedTransactionsFailedWithError:(NSError *)error
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue
</code></pre>

<p>但我还是想不通用一个进程调用这个方法。</p>

<p>我假设我需要在调用回调方法之前调用此方法<code>[ restoreCompletedTransactions];</code>。</p>

<p>你能一步一步解释它是如何工作的吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你猜对了!您唯一需要调用的是:</p>

<pre><code>[ restoreCompletedTransactions];
</code></pre>

<p>这将恢复用户已完成的所有交易。对于每笔交易,都会调用此 <code>SKPaymentTransactionObserver</code> 方法(每次用户购买时也会调用相同的方法):</p>

<pre><code>    - (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
      for (SKPaymentTransaction *transaction in transactions) {
            switch (transaction.transactionState) {
                case SKPaymentTransactionStatePurchased:
                  ;
                  break;
                case SKPaymentTransactionStateFailed:
                  ;
                  break;
                case SKPaymentTransactionStateRestored:
                  ;
                  break;            
                default:
                  break;
            }
      }

    }
</code></pre>

<p>如果需要,您可以使用 transactionState 区分交易是原始购买 (<code>SKPaymentTransactionStatePurchased</code>) 还是恢复 (<code>SKPaymentTransactionStateRestored</code>)。</p>

<p>如果您需要知道恢复何时完成,您可以使用:</p>

<pre><code>- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
   NSLog(@&#34;%d items restored&#34;, queue.transactions.count);
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 应用内购买恢复功能,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/11396642/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/11396642/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 应用内购买恢复功能