Skip to content

Commit 7fe959b

Browse files
Merge pull request #74 from PaystackOSS/feat-mobile-sdk
Feat: Add iOS SDK snippet
2 parents 4151e1a + c9ee1e6 commit 7fe959b

File tree

18 files changed

+120
-0
lines changed

18 files changed

+120
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
const swift = `let cardParams = PSTCKCardParams.init();
2+
let transactionParams = PSTCKTransactionParams.init();
3+
4+
// then set parameters thus from card
5+
cardParams.number = "4084084084084081"
6+
cardParams.cvc = "408"
7+
cardParams.expMonth = 06
8+
cardParams.expYear = 2024
9+
10+
transactionParams.amount = 12390;
11+
transactionParams.email = "[email protected]";`
12+
13+
export {swift}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
const swift_ui = `// SwiftUI
2+
paystack?.chargeUIButton(accessCode: "0peioxfhpn", onComplete: paymentDone) {
3+
Text("Initiate Payment")
4+
}`
5+
6+
const ui_kit = `@IBAction func payButtonTapped(_ sender: Any) {
7+
paystack?.presentChargeUI(on: self,
8+
accessCode: "0peioxfhpn",
9+
onComplete: paymentDone)
10+
}`
11+
12+
export {swift_ui, ui_kit}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
const from = `PSTCKAPIClient.shared().chargeCard(cardParams, forTransaction: transactionParams, on: self,
2+
didEndWithError: { (error, reference) -> Void in
3+
print(error)
4+
}, didRequestValidation: { (reference) -> Void in
5+
// an OTP was requested, transaction has not yet succeeded
6+
print("Validation: \(reference)")
7+
}, didTransactionSuccess: { (reference) -> Void in
8+
// transaction may have succeeded, please verify on backend
9+
print("Success: \(reference)")
10+
})`
11+
12+
const to = `func paymentDone(_ result: TransactionResult) {
13+
switch (result){
14+
case .completed(let details):
15+
print("Transaction completed with reference: \(details.reference)")
16+
case .cancelled:
17+
print("Transaction was cancelled")
18+
case .error(error: let error, reference: let reference):
19+
print("An error occured: \(error.message) with reference: \(String(describing: reference))")
20+
}
21+
}`
22+
23+
export {from, to}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
const swift = `import PaystackCore
2+
import PaystackUI`
3+
4+
export {swift}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
const from = `Paystack.setDefaultPublicKey("pk_test_xxxxx")`
2+
3+
const to = `let paystack = try? PaystackBuilder
4+
.newInstance
5+
.setKey("pk_test_xxxx")
6+
.build()`
7+
8+
export {from, to}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
languages:
2+
- swift
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
let cardParams = PSTCKCardParams.init();
2+
let transactionParams = PSTCKTransactionParams.init();
3+
4+
// then set parameters thus from card
5+
cardParams.number = "4084084084084081"
6+
cardParams.cvc = "408"
7+
cardParams.expMonth = 06
8+
cardParams.expYear = 2024
9+
10+
transactionParams.amount = 12390;
11+
transactionParams.email = "[email protected]";
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
type: single-lang
2+
languages:
3+
- swift
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// SwiftUI
2+
paystack?.chargeUIButton(accessCode: "0peioxfhpn", onComplete: paymentDone) {
3+
Text("Initiate Payment")
4+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
@IBAction func payButtonTapped(_ sender: Any) {
2+
paystack?.presentChargeUI(on: self,
3+
accessCode: "0peioxfhpn",
4+
onComplete: paymentDone)
5+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
type: single-lang
2+
languages:
3+
- swift
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
PSTCKAPIClient.shared().chargeCard(cardParams, forTransaction: transactionParams, on: self,
2+
didEndWithError: { (error, reference) -> Void in
3+
print(error)
4+
}, didRequestValidation: { (reference) -> Void in
5+
// an OTP was requested, transaction has not yet succeeded
6+
print("Validation: \(reference)")
7+
}, didTransactionSuccess: { (reference) -> Void in
8+
// transaction may have succeeded, please verify on backend
9+
print("Success: \(reference)")
10+
})
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
func paymentDone(_ result: TransactionResult) {
2+
switch (result){
3+
case .completed(let details):
4+
print("Transaction completed with reference: \(details.reference)")
5+
case .cancelled:
6+
print("Transaction was cancelled")
7+
case .error(error: let error, reference: let reference):
8+
print("An error occured: \(error.message) with reference: \(String(describing: reference))")
9+
}
10+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
languages:
2+
- swift
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import PaystackCore
2+
import PaystackUI
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
type: single-lang
2+
languages:
3+
- swift
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Paystack.setDefaultPublicKey("pk_test_xxxxx")
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let paystack = try? PaystackBuilder
2+
.newInstance
3+
.setKey("pk_test_xxxx")
4+
.build()

0 commit comments

Comments
 (0)