还原事务未调用付款队列

问题描述 投票:1回答:1

**编辑:我已经缩小了购买Apple Hosted Content的原因。非正式内容的定期购买会正确恢复。

我似乎无法恢复我的应用程序上的购买。购买工作完全正常。但是当我使用一个调用的函数时:

SKPaymentQueue.default().restoreCompletedTransactions()

永远不会调用支付队列

func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
    //Not called!
}

paymentQueue对于常规购买没有问题。

看起来恢复正常完成,因为在运行上面的.restoredCompletedTransactions之后我立即调用了这个函数。

func paymentQueueRestoreCompletedTransactionsFinished(_ queue: SKPaymentQueue) {       
print ("This works")  
}

我还检查了以下内容并没有得到任何错误:

func paymentQueue(_ queue: SKPaymentQueue, restoreCompletedTransactionsFailedWithError error: Error) 

SKPaymentQueue.add(self)在restoredCompletedTransactions之前被调用,因此这也不应成为问题。

什么可能导致IAP工作完全正常,但不是恢复?我正在使用物理设备测试它,并使用沙箱帐户。

recent question had a similar problem,但从来没有得到答案。此外,我不确定这是否重要,但购买的是使用Apple Hosted Content。

任何帮助将非常感激!它在这里杀了我。

ios swift in-app-purchase
1个回答
0
投票

所以我有点想通了。

我从iTunes Connect中删除了所有应用内购买,并重新创建了它们(带有托管内容),并修复了问题。

我认为问题可能是我在创建应用内购买后的某个时刻更改了包标识符。虽然我已将产品和代码的ID调整为新的捆绑包标识符,但我想知道这些原始购买历史记录是否正在尝试恢复,并且由于这些原始购买使用旧的捆绑包标识符,因此它们不会加载为交易。

© www.soinside.com 2019 - 2024. All rights reserved.