The Payment Queue & Transactions
How the OnsidePaymentQueue processes transactions, why a transaction observer is required, the transaction lifecycle, and why finishing transactions is mandatory.
Accessing the queue
@MainActor static func defaultPaymentQueue() -> OnsidePaymentQueuelet queue = Onside.defaultPaymentQueue()protocol OnsidePaymentQueue: AnyObject {
var delegate: OnsidePaymentQueueDelegate? { get set }
var storefront: OnsideStorefront? { get }
var transactions: [OnsidePaymentTransaction] { get }
var transactionObservers: [OnsidePaymentTransactionObserver] { get }
func add(observer: OnsidePaymentTransactionObserver)
func remove(observer: OnsidePaymentTransactionObserver)
func add(
_ payment: OnsidePayment,
completion: ((Result<Void, OnsidePaymentQueueAddProductError>) -> Void)?
)
func restoreCompletedTransactions(
completion: ((Result<Void, OnsidePaymentQueueRequestRestoreError>) -> Void)?
)
func finishTransaction(_ transaction: OnsidePaymentTransaction)
}A transaction observer is required
The transaction lifecycle
State
Meaning
Your action
Finishing transactions is mandatory
Transactions can appear without an explicit purchase
The observer protocol
Method
Required?
Called when
When the storefront changes
Next
Last updated
Was this helpful?