Inspired by the works of YohannesTz and Chapi, Chapa4iOS is the unofficial iOS SDK for Chapa. This is done according to the official documentation provided by the internal team of Chapa.
- Generate Transaction Reference (Util)
- Accept Payment
- Verify Payment
We have dealt with the snake_case variable names of JSON by mapping them into camelCase representations to make the models prepared comforming to Codable protocol.
Chapa4iOS can be installed with the Swift Package Manager (SPM): (https://github.com/yohannescodes/Chapa4iOS/)
Once the installation process is done, we can import the SDK in the file we want to use it in.
import Chapa4iOS
var chapa: Chapa!
override func viewDidLoad(){
chapa = Chapa(secretKey: "**YOUR SECRET KEY FROM CHAPA DASHBOARD**")
}
This utility method of Chapa instance allows you to generating a customizable random alpha numberic transaction reference.
let transactionReference = chapa.generateTransactionReference()
Here we can initialize transaction by providing customer information and requesting for a checkout URL to load for our users.
let customer = Customer(amount: "100", currency: .etb, email: nil, firstName: "Yohannes", lastName: "Haile", phoneNumber: "0922106876", txRef: transactionReference, callbackURL: nil, returnURL: nil, customization: nil)
//Enter the instance of your View Controller when you call the following method so it can instantiate Web View for the Checkout page it retrieves from the response.
chapa.acceptPayment(controller: self, customer: customer)
- email: String?
- firstName: String?
- lastName: String?
- phoneNumber: String?
- callbackURL: String?
- returnURL: String? (HIGHLY RECOMMENDED TO PROVIDE THIS FIELD)
- customization: ChapaCustomization?
You can customize the checkout page for your users by providing:
- title
- description
Verifying transactions is automated starting from Chapa4iOS v1.0.0.