Skip to content

Commit

Permalink
Feat: Add SDK accept payment snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
damilola-paystack committed Mar 11, 2024
1 parent 94e4e2b commit 85a6d5a
Show file tree
Hide file tree
Showing 8 changed files with 192 additions and 0 deletions.
41 changes: 41 additions & 0 deletions dist/doc/payments/accept-payment/android-complete-payment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
const kt = `import com.paystack.android_sdk.core.Paystack
import com.paystack.android_sdk.ui.paymentsheet.PaymentSheet
import com.paystack.android_sdk.ui.paymentsheet.PaymentSheetResult
private lateinit var paymentSheet: PaymentSheet
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//...
Paystack.builder()
.setPublicKey("pk_{your-public-key}")
.build()
paymentSheet = PaymentSheet(this, {your-callback-function})
//...
}
// example paymentResult function
private fun paymentComplete(paymentSheetResult: PaymentSheetResult ) {
val message = when (paymentSheetResult) {
PaymentSheetResult.Cancelled -> "Cancelled"
is PaymentSheetResult.Failed -> {
Log.e("Something went wrong", paymentSheetResult.error.message.orEmpty(), paymentSheetResult.error)
paymentSheetResult.error.message ?: "Failed"
}
is PaymentSheetResult.Completed -> {
// Returns the transaction reference PaymentCompletionDetails(reference={TransactionRef})
Log.d("Payment successful", paymentSheetResult.paymentCompletionDetails.toString())
"Successful"
}
}
Toast.makeText(this, "Payment $message", Toast.LENGTH_SHORT).show()
}`

const java = `// TODO: Add snippet`

export {kt, java}
55 changes: 55 additions & 0 deletions dist/doc/payments/accept-payment/ios-complete-payment.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
const swift_ui = `import SwiftUI
import PaystackCore
import PaystackUI
struct PaymentView: View {
let paystack = try? PaystackBuilder
.newInstance
.setKey("pk_domain_xxxxxxxx")
.build()
var body: some View {
VStack(spacing: 8) {
Text("Make Payemnt")
paystack?.chargeUIButton(accessCode: "0peioxfhpn",
onComplete: paymentDone) {
Text("Initiate Payment")
}
}
.padding()
}
func paymentDone(_ result: TransactionResult) {
// Handle transaction result
print(result)
}
}
// ....`

const ui_kit = `import UIKit
import PaystackCore
import PaystackUI
class ViewController: UIViewController {
let paystack = try? PaystackBuilder
.newInstance
.setKey("PUBLIC_KEY")
.build()
let paymentAccessCodee = "ACCESS_CODE"
@IBAction func launchPaymentTapped(_ sender: Any) {
paystack?.presentChargeUI(on: self,
accessCode: paymentAccessCodee,
onComplete: paymentCompleted)
}
func paymentCompleted(_ result: TransactionResult) {
print("Payment completed. Result: \(result)")
}
}`

export {swift_ui, ui_kit}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
languages:
- kt
- java
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
// TODO: Add snippet
37 changes: 37 additions & 0 deletions src/doc/payments/accept-payment/android-complete-payment/index.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import com.paystack.android_sdk.core.Paystack
import com.paystack.android_sdk.ui.paymentsheet.PaymentSheet
import com.paystack.android_sdk.ui.paymentsheet.PaymentSheetResult

private lateinit var paymentSheet: PaymentSheet

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

//...

Paystack.builder()
.setPublicKey("pk_{your-public-key}")
.build()
paymentSheet = PaymentSheet(this, {your-callback-function})

//...
}

// example paymentResult function
private fun paymentComplete(paymentSheetResult: PaymentSheetResult ) {
val message = when (paymentSheetResult) {
PaymentSheetResult.Cancelled -> "Cancelled"
is PaymentSheetResult.Failed -> {
Log.e("Something went wrong", paymentSheetResult.error.message.orEmpty(), paymentSheetResult.error)
paymentSheetResult.error.message ?: "Failed"
}

is PaymentSheetResult.Completed -> {
// Returns the transaction reference PaymentCompletionDetails(reference={TransactionRef})
Log.d("Payment successful", paymentSheetResult.paymentCompletionDetails.toString())
"Successful"
}
}

Toast.makeText(this, "Payment $message", Toast.LENGTH_SHORT).show()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
type: single-lang
languages:
- swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import SwiftUI
import PaystackCore
import PaystackUI

struct PaymentView: View {
let paystack = try? PaystackBuilder
.newInstance
.setKey("pk_domain_xxxxxxxx")
.build()

var body: some View {
VStack(spacing: 8) {
Text("Make Payemnt")

paystack?.chargeUIButton(accessCode: "0peioxfhpn",
onComplete: paymentDone) {
Text("Initiate Payment")
}
}
.padding()
}

func paymentDone(_ result: TransactionResult) {
// Handle transaction result
print(result)
}
}

// ....
23 changes: 23 additions & 0 deletions src/doc/payments/accept-payment/ios-complete-payment/ui-kit.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import UIKit
import PaystackCore
import PaystackUI

class ViewController: UIViewController {
let paystack = try? PaystackBuilder
.newInstance
.setKey("PUBLIC_KEY")
.build()

let paymentAccessCodee = "ACCESS_CODE"

@IBAction func launchPaymentTapped(_ sender: Any) {
paystack?.presentChargeUI(on: self,
accessCode: paymentAccessCodee,
onComplete: paymentCompleted)
}

func paymentCompleted(_ result: TransactionResult) {
print("Payment completed. Result: \(result)")
}

}

0 comments on commit 85a6d5a

Please sign in to comment.