Programmatically start the SDK
Overview
If your integration or UI doesn't easily create an order, you can programmatically start the Native Checkout SDK for iOS.
Instead of invoking the payment sheet by adding a button with the event closures set on the Checkout
type, provide the closures directly to the SDK through Checkout.start
.
Sample Native Checkout SDK code for iOS
This sample code creates an order of a single item for $10.00 USD.
func triggerPayPalCheckout() {
Checkout.start(
createOrder: { createOrderAction in
let amount = PurchaseUnit.Amount(currencyCode: .usd, value: "10.00")
let purchaseUnit = PurchaseUnit(amount: amount)
let order = OrderRequest(intent: .capture, purchaseUnits: [purchaseUnit])
createOrderAction.create(order: order)
}, onApprove: { approval in
approval.actions.capture { (response, error) in
print("Order successfully captured: \(response?.data)")
}
}, onCancel: {
// Optionally use this closure to respond to the user canceling the paysheet
}, onError: { error in
// Optionally use this closure to respond to the user experiencing an error in
// the payment experience
}
)
}