• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 应用内购买恢复功能

[复制链接]
菜鸟教程小白 发表于 2022-12-12 21:52:12 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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

我使用非消耗品进行购买。

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

- (void)restoreTransactionSKPaymentTransaction *)transaction
- (void)paymentQueueSKPaymentQueue *)queue restoreCompletedTransactionsFailedWithErrorNSError *)error
- (void)paymentQueueRestoreCompletedTransactionsFinishedSKPaymentQueue *)queue

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

我假设我需要在调用回调方法之前调用此方法[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

你能一步一步解释它是如何工作的吗?



Best Answer-推荐答案


你猜对了!您唯一需要调用的是:

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

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

    - (void)paymentQueueSKPaymentQueue *)queue updatedTransactionsNSArray *)transactions {
        for (SKPaymentTransaction *transaction in transactions) {
            switch (transaction.transactionState) {
                case SKPaymentTransactionStatePurchased:
                    [self completeTransaction:transaction];
                    break;
                case SKPaymentTransactionStateFailed:
                    [self failedTransaction:transaction];
                    break;
                case SKPaymentTransactionStateRestored:
                    [self restoreTransaction:transaction];
                    break;              
                default:
                    break;
            }
        }

    }

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

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

- (void)paymentQueueRestoreCompletedTransactionsFinishedSKPaymentQueue *)queue {
   NSLog(@"%d items restored", queue.transactions.count);
}

关于ios - 应用内购买恢复功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396642/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap