class ViewController {
lazy var client: CardClient = {
let config = Shared.paypalConfig
let client = CardClient(config: config)
client.xyz = ...
return client
}()
func viewDidLoad() {
..
}
enum OrderCreator {
case orderId(String)
case orderObject(OrderRequest)
case failure(Error)
}
func submitOrder() {
payPalClient.checkout(...)
client.checkout(
card: card,
createOrder: { completion in
Network.getOrderId(details) { result in
switch result {
case .success(let orderId):
completion(.orderId(orderId))
case .failure(let error):
completion(.failure(error))
}
}
},
onApprove: { result in
switch result {
case .success(let orderResponse):
print("Successfully confirmed payment / validated / ?")
case .failure(let error):
print("Failed to confirm payment or whatever")
}
}
)
}
}
class ViewController {
lazy var client: CardClient = {
let config = Shared.paypalConfig
let client = CardClient(config: config)
client.xyz = ...
return client
}()
func viewDidLoad() {
..
}
func submitOrderId() {
let orderId = Network.getOrderId(orderDetails) { result in {
guard let result == .success(orderId) else { return }
client.submit(
card: card,
orderId: orderId,
completion: { result in
switch result {
case .success(let orderResponse):
print("Successfully confirmed payment / validated / ?")
case .failure(let error):
print("Failed to confirm payment or whatever")
}
}
)
}
}
func submitOrderObject() {
let orderObject = OrderRequest(
intent: .capture,
purchaseUnits: [
...
]
)
client.submit(
card: card,
order: orderObject,
completion: { result in
switch result {
case .success(let orderResponse):
print("Successfully confirmed payment / validated / ?")
case .failure(let error):
print("Failed to confirm payment or whatever")
}
}
)
}
}
client.create(order) { response in
// fail or success here
}
client.create(orderId)
client.submit(card) { response in
switch response.intent {
case .authorize:
case .capture:
}
}
user image URL
Oct 4, 2023iOS:
Oct 2, 2023Auth Latency Reporting
Sep 26, 2023Networking headers typed responses / result method networkingClient.createAccessToken(client: "SSS") { result in switch result { case .succes(let model): //
Sep 10, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up