PayBright iOS SDK is a library written in swift that allows you to add PayBright as a payment option in your own app.
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate PayBright into your Xcode project using CocoaPods, add the following to your Podfile and run pod install
PayBright integration consists of two steps: Configure and Checkout
Set the API Key and token obtained from PayBright in PBConfig once (preferably in the AppDelegate's didFinishLaunchingWithOptions) as follows
PBConfig.shared.initialize(environment: .Sandbox, accountID: "API_KEY", apiToken: "API_TOKEN")
Checkout creation is the process in which a customer uses PayBright to pay for a purchase in your store. This process is governed by PBInstance object (which is set up in PBConfig shared object), and requires four parameters/objects:
- PBCustomer: details of the customer
- PBCustomerBilling: customer's billing address details
- PBCustomerShipping: customer's shipping address details
- PBProduct: item details
let customerObj = PBCustomer.init(customerEmail: "[email protected]", customerFirstName: "James", customerLastName: "Testhetfield", customerPhone: nil)
let customerBillingObj = PBCustomerBilling.init(customerBillingAddress1: "270 Rue Olier", customerBillingAddress2: nil, customerBillingCity: "Chicoutimi", customerBillingCompany: nil, customerBillingCountry: "CA", customerBillingPhone: "+1-613-987-6543", customerBillingState: "QC", customerBillingZip: "G7G 4J3")
let customerShippingObj = PBCustomerShipping.init(customerShippingAddress1: "270 Rue Olier", customerShippingAddress2: nil, customerShippingCity: "Chicoutimi", customerShippingCompany: "Shopify", customerShippingCountry: "CA", customerShippingFirstName: "James", customerShippingLastName: "Testhetfield", customerShippingPhone: "+1-613-987-6543", customerShippingState: "QC", customerShippingZip: "G7G 4J3")
let productObj = PBProduct.init(amount: 2625.0, currency: "CAD", description: "PaymentGatewayTesting - #4682855809085", invoice: "#4682855809085", planID: nil, platform: "sdk", reference: "4682855809085", shopCountry: "CA", shopName: "PaymentGatewayTesting", urlCallback: "https://checkout.shopify.com/services/ping/notify_integration/paybright/19629019", urlCancel: "https://paymentgatewaytesting.myshopify.com/19629019/checkouts/84044f7a52ff18a84dd1f2b5cd46b387?key=0c4978718a87a00e5ac1456b577b5695", urlComplete: "https://paymentgatewaytesting.myshopify.com/19629019/checkouts/84044f7a52ff18a84dd1f2b5cd46b387/offsite_gateway_callback")
let instanceObj = PBInstance.init(customerObj: customerObj, customerBillingObj: customerBillingObj, customerShippingObj: customerShippingObj, productObj: productObj)
Once the PBInstance has been constructed, set it in PBConfig shared object and you may use PBViewController. This initiates the flow which guides the user through the PayBright checkout process. An example of how this is implemented is provided as follows
PBConfig.shared.instanceObj = instanceObj let pbVC :PBViewController = PBViewController.init(nibName: "PBViewController", bundle: Bundle(for: PBViewController.self)) pbVC.delegate = self self.navigationController?.pushViewController(pbVC, animated: true)
The flow ends once the user has successfully confirmed the checkout, canceled the checkout, or encountered an error in the process. In each of these cases, PayBright will send a message to the PBWebViewDelegate along with additional information about the result.
A demo app that integrates PayBright is included in the repo.
Xcode 10 is required to use PayBright
Updated about 1 year ago