- iOS 10.0+
- Xcode 9.0+
- Swift 4.1+
You can find the FramesIos documentation on this website.
- Usage
- Customizing the card view
- Walkthrough
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
CocoaPods 1.1+ is required to build FramesIos 1.0+.
To integrate FramesIos into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks!
target '<Your Target Name>' do
pod 'Frames', '~> 2.6'
end
Then, run the following command:
$ pod install
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate FramesIos into your Xcode project using Carthage, specify it in your Cartfile
:
github "checkout/frames-ios" ~> 2.6
Run carthage update
to build the framework and drag the built FramesIos
into your Xcode project.
Import the SDK:
import Frames
class ViewController: UIViewController, CardViewControllerDelegate {
let checkoutAPIClient = CheckoutAPIClient(publicKey: "pk_test_6ff46046-30af-41d9-bf58-929022d2cd14",
environment: .sandbox)
var cardViewController: CardViewController {
let checkoutAPIClient = CheckoutAPIClient(publicKey: "pk_test_03728582-062b-419c-91b5-63ac2a481e07",
environment: .sandbox)
return CardViewController(checkoutApiClient: checkoutAPIClient, cardHolderNameState: .hidden, billingDetailsState: .hidden)
}
override func viewDidLoad() {
super.viewDidLoad()
// set the card view controller delegate
cardViewController.delegate = self
// replace the bar button by Pay
cardViewController.rightBarButtonItem = UIBarButtonItem(title: "Pay", style: .done, target: nil, action: nil)
// specified which schemes are allowed
cardViewController.availableSchemes = [.visa, .mastercard]
navigationController?.pushViewController(cardViewController, animated: false)
}
func onTapDone(controller: CardViewController, card: CkoCardTokenRequest) {
checkoutAPIClient.createCardToken(card: card, successHandler: { cardToken in
print(cardToken.id)
}, errorHandler: { error in
print(error)
})
}
}
You can find more examples on the usage guide.
// replace "pk_test_6ff46046-30af-41d9-bf58-929022d2cd14" by your own public key
let checkoutAPIClient = CheckoutAPIClient(publicKey: "pk_test_6ff46046-30af-41d9-bf58-929022d2cd14",
environment: .sandbox)
let cardUtils = CardUtils()
/// verify card number
let cardNumber = "4242424242424242"
let isCardValid = cardUtils.isValid(cardNumber: cardNumber)
// create the phone number
let phoneNumber = CkoPhoneNumber(countryCode:number:)
// create the address
let address = CkoAddress(name:addressLine1:addressLine2:city:state:postcode:country:phone:)
// create the card token request
let cardTokenRequest = CkoCardTokenRequest(number:expiryMonth:expiryYear:cvv:name:billingAddress:)
let checkoutAPIClient = CheckoutAPIClient(publicKey: "pk_......", environment: .live)
// create the phone number
let phoneNumber = CkoPhoneNumber(countryCode:number:)
// create the address
let address = CkoAddress(name:addressLine1:addressLine2:city:state:postcode:country:phone:)
// create the card token request
let cardTokenRequest = CkoCardTokenRequest(number:expiryMonth:expiryYear:cvv:name:billingAddress:)
checkoutAPIClient.createCardToken(card: cardTokenRequest, successHandler: { cardTokenResponse in
// success
}, errorHandler { error in
// error
})
The success handler takes an array of CkoCardTokenResponse
as a parameter.
The error handler takes an ErrorResponse
as a parameter.
var cardViewController: CardViewController {
let checkoutAPIClient = CheckoutAPIClient(publicKey: "pk_test_03728582-062b-419c-91b5-63ac2a481e07",
environment: .sandbox)
CheckoutTheme.primaryBackgroundColor = .blue
CheckoutTheme.secondaryBackgroundColor = .purple
CheckoutTheme.errorColor = .yellow
CheckoutTheme.color = .green
return CardViewController(checkoutApiClient: checkoutAPIClient, cardHolderNameState: .hidden, billingDetailsState: .normal)
}
FramesIos is released under the MIT license. See LICENSE for details.