我的应用内置了应用内购买(我按照本教程),购买功能有效.但是,当我在App Store中为其中一个应用内购买产品兑换促销代码时,我的应用不响应它.即使App Store说该产品已成功兑换,我的应用程序也没有回复.
如果您的应用可以处理促销代码,是否有任何人在应用内购买测试?你介意分享解决方案吗?
我从这开始:
override func viewDidLoad() {
NotificationCenter.default.addObserver(self,
selector: #selector(applicationDidBecomeActive(notification:)),
name: NSNotification.Name.UIApplicationDidBecomeActive,
object: nil
)
}
func applicationDidBecomeActive(notification: NSNotification){
let store = IAPHealper()
//what needs to be put here?
}
extension IAPHelper: SKPaymentTransactionObserver {
public func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
for transaction in transactions {
switch (transaction.transactionState) {
case .purchased:
completeTransaction(transaction)
break
case .failed:
failedTransaction(transaction)
break
case .restored:
restoreTransaction(transaction)
break
case .deferred:
break
case .purchasing:
break
}
}
}
fileprivate func completeTransaction(_ transaction: …Run Code Online (Sandbox Code Playgroud) 我有一个集成应用内购买的应用程序。通常,应用程序内购买功能可对应用程序中进行的购买按预期方式工作,并且也经过全面测试,可用于在应用程序商店中发起的购买(使用“ itms-services://?action = ....测试”) )
在AppDelegate中启动应用程序后,我将立即启用IAPService,并且可以按预期正确调用updateTransaction,但是...
当我兑换促销代码时,它不会到达updateTransactions中。它确实包含我进行的其他购买,但没有提及通过促销代码兑换的任何东西(尽管在AppStore上收到一条可爱的消息,指出兑换成功)。实际上,它永远不会来自其他任何后续启动,甚至即使我随后致电:
SKPaymentQueue.default()。restoreCompletedTransactions()
知道我要去哪里错了吗?我已经向Apple提交了一个错误报告,以防万一这是他们的事情,但我没有屏息!