Я столкнулся с очень странным поведением, так как код не был изменен. Мне кажется, что это проблема с версией c, так как она возникает из ниоткуда
сценарий: когда я пытаюсь купить продукт, используя
let payment = SKPayment(product: product)
SKPaymentQueue.default().add(payment)
покупка яблока по умолчанию или любое другое всплывающее окно, не отображаемое
, элемент управления переходит непосредственно в восстановленное transactionState
public func paymentQueue(_: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) {
DispatchQueue.main.async {
for transaction in transactions {
switch transaction.transactionState {
case .purchased:
self.complete(transaction: transaction)
break
case .failed:
hideLoader()
self.fail(transaction: transaction)
break
case .restored:
hideLoader()
self.restore(transaction: transaction)
break
case .deferred:
hideLoader()
break
case .purchasing:
showLoader()
break
@unknown default:
break
}
}
}
}
Я не уверен, почему это происходит, поскольку яблоко должно отображать всплывающее окно или любую информацию, связанную с процессом
После этой функции мы проверяем получение и получение возвращает
"pending_renewal_info": [
{
"expiration_intent": "1",
"auto_renew_product_id": "BUNDLE_ID",
"original_transaction_id": "transaction_id",
"is_in_billing_retry_period": "0",
"product_id": "PRODUCT ID",
"auto_renew_status": "0"
}
]
Я не уверен, почему expiration_intent в этом случае приходит 1