iOS
Our SDK docs are programmatically generated, so to guarantee you’re viewing the most up-to-date version of our docs, you can visit this site. The docs (below) are regularly updated and have been replicated here for your convenience.
Installation
The instructions below detail how to install the library via Cocoapods. Additionally, you can download the binary .framework
file and manually link it to your project.
Cocoapods
- The Thanx SDK is hosted in a private Cocoapods Spec repo so you first need to add it.
pod repo add thanx-ios-specs https://github.com/thanx/thanx-ios-spec.git
- Add the source at the top of your Podfile and the ThanxSDK pod within your target.
source 'https://github.com/thanx/thanx-ios-spec.git'
target 'SDKSampleApp' do
use_frameworks!
pod 'ThanxSDK'
end
-
Generate a new Github token with the user that has been invited to the Thanx repositories.
-
Set the environmental variable
GITHUB_TOKEN
with the newly generated token and then run bundle exec pod install.
>> GITHUB_TOKEN=1234567890 bundle exec pod install
Usage
In order to use the SDK, you must first import the module at the top of any files that you intend to utilize it.
import ThanxSDK
Card Encryption
The SDK provides methods to encrypt credit cards so you can then send them via the Thanx API to create and enroll a card into the loyalty platform.
For following methods to work, you must first get the encryption details via the GET /card_signature API endpoint. This endpoint provides the necessary public key for the encryption as well as the additional uid for Visa cards.
Visa
To encrypt Visa cards, you will need the public key and the uid from the signature endpoint. Once you have have that information, use these steps to generate the encrypted pan.
let publicKey: String = "" // from the signature details
let uid: String = "" // from the signature details
let cardNumber: String = "" // from your application user form.
let encryptedPan = Thanx.CardEncryption(
type: .visa,
publicKey: publicKey,
userId: uid
).encrypt(
number: cardNumber
)
Mastercard
For Mastercard encryption, you only need the public key from the signature endpoint.
let publicKey: String = "" // from the signature details
let cardNumber: String = "" // from your application user form
let encryptedPan = Thanx.CardEncryption(
type: .mastercard,
publicKey: publicKey
).encrypt(
number: cardNumber
)
Amex
For Amex encryption, you only need the public key from the signature endpoint.
let publicKey: String = "" // from the signature details
let cardNumber: String = "" // from your application user form
let encryptedPan = Thanx.CardEncryption(
type: .amex,
publicKey: publicKey
).encrypt(
number: cardNumber
)
Submission
Once you have the encryptedPan
, you can send it to the POST /cards as the encrypted_pan
parameter.