[TOC]
Тус гарын авлага нь Андройд
аппликейшнээс PayPRO
төлбөрийн аппликэйшнтай холболт хийх талаар зааварчилгааг агуулсан болно.
Client app->Payment app: Гүйлгээний хүсэлт\n
Note right of Payment app: Төлбөр төлөлт\nхийгдэнэ
Payment app->Client app: Гүйлгээний хариу
[==============]
Жишээ код (Java) - Татах Жишээ код (Kotlin) - Татах
[==============]
build.gradle файл дээр доорх байдлаар нэмж, sync хийх
implementation 'mn.lambda:paypro-sdk:1.0.28'
PayProApi class нь SDK функцуудыг агуулсан байна.
PayProApi instance дараах байдлаар үүсгэнэ
val api = PayProApi(bank: String)
Параметр | Төрөл | Тайлбар |
---|---|---|
bank | string | Аль банкны пос төрөөрөмж дээр холболт хийж байгаагаас хамааран утгыг дамжуулна. Зөвхөн дараах утгуудаас сонгон дамжуулах хас |
class PayProApi {
...
fun doSomething( // функцын нэр
context: Context,
callback: (PayProResponse<T>) -> Unit // хариу хүлээж авах callback
)
...
}
Callback функцын үрд дүнд ирж байгаа хариуг Амжилттай болон Амжилтгүй биелсэн эсэхийг дараах байдлаар шалгаж боловсруулна
api.doSomething(context) {
when(it) {
is PayProResponse.Success -> {
// Амжилттай
println(it.data)
}
is PayProResponse.Error -> {
// Амжилтгүй
println("алдаа: ${it.message}")
}
}
}
Картын гүйлгээ хийх функц.
class PayProApi {
...
fun cardPayment(
context: Context,
amount: Double, // Гүйлгээний дүн
callback: (PayProResponse<CardPaymentResult>) -> Unit // Гүйлгээний хариу хүлээж авах callback
)
...
}
[==============]
Параметр | Төрөл | Тайлбар |
---|---|---|
amount | double | Гүйлгээ хийх дүн |
[==============]
Гүйлгээ амжилттай болсон үед PayProResponse.Success
төрөлтэй хариу ирэх байх ба гүйлгээний мэдээллийг data
талбараас авна.
api.cardPayment(context, amount) {
when(it) {
is PayProResponse.Success -> {
// Амжилттай
val data = it.data // CardPaymentResult төрөлтэй байна
}
is PayProResponse.Error -> {
// Амжилтгүй
}
}
}
CardPaymentResult
class нь дараа бүтэцтэй байна
class CardPaymentResult(
val merchantId: String, // Мерчант дугаар
val terminalId: String, // Терминал дугаар
val amount: Double, // Гүйлгээ хийсэн дүн
val traceno: String, // Гүйлгээний trace дугаар
val batchno: String, // Гүйлгээний batch дугаар
val maskedPAN: String, // Картын маскалсан дугаар
val systemRef: String, // System ref дугаар
val approveCode: String, // Зөвшөөрлийн код
val date: String, // Гүйлгээ хийгдсэн огноо
)
Амжилтгүй болсон үед PayProResponse.Error
төрөлтэй хариу ирнэ. Шалтгааныг message
талбараас авна.
api.cardPayment(context, amount) {
when(it) {
is PayProResponse.Success -> {
}
is PayProResponse.Error -> {
// Амжилтгүй
println("алдаа: ${it.message}")
}
}
}
[==============]
POS төхөөрөмж дээр баримт хэвлэх үед ашиглана. Баримт хэвлэх талаар дэлгэрэнгүй жишээг Демо кодноос харна уу.
class PayProApi {
...
fun print(
context: Context,
payload: String, // Баримтын хэвлэх дата
callback: (PayProResponse<Empty>) -> Unit // Хэвлэх үйлдлийн хариуг хүлээж авах callback
)
...
}
Параметр | Төрөл | Тайлбар |
---|---|---|
payload | string | Хэвлэх мэдээллийг json форматтайгаар дамжуулна, жишээ кодтой танилцана уу |
Баримт амжилттай хэвлэгдсэн үед PayProResponse.Success
төрөлтэй хариу ирнэ.
api.print(context, payload) {
when(it) {
is PayProResponse.Success -> {
// Амжилттай
}
is PayProResponse.Error -> {
}
}
}
Баримтын цаас дууссан эсвэл бусад тохиолдолд PayProResponse.Error
төрөлтэй хариу ирнэ. Шалтгааныг message
талбараас авна.
api.print(context, payload) {
when(it) {
is PayProResponse.Success -> {
}
is PayProResponse.Error -> {
// Амжилтгүй
println("алдаа: ${it.message}")
}
}
}
[==============]
Пос төхөөрөмжийн мэдээлэл авах
class PayProApi {
...
fun getDeviceInfo(
context: Context,
callback: (PayProResponse<DeviceInfo>) -> Unit // Төхөөрөмжийн мэдээлэл хүлээж авах callback
)
...
}
[==============]
Төхөөрөмжийн мэдээлэл амжилттай авсан үед PayProResponse.Success
төрөлтэй хариу ирэх байх ба төхөөрөмжийн мэдээллийг data
талбараас авна.
api.getDeviceInfo(context) {
when(it) {
is PayProResponse.Success -> {
// Амжилттай
val data = it.data // DeviceInfo төрөлтэй байна
}
is PayProResponse.Error -> {
// Амжилтгүй
}
}
}
DeviceInfo
class нь дараа бүтэцтэй байна
class DeviceInfo(
val serialNumber: String, // Төхөөрөмжийн Сериал дугаар
)
Амжилтгүй болсон үед PayProResponse.Error
төрөлтэй хариу ирнэ. Шалтгааныг message
талбараас авна.
api.getDeviceInfo(context) {
when(it) {
is PayProResponse.Success -> {
}
is PayProResponse.Error -> {
// Амжилтгүй
println("алдаа: ${it.message}")
}
}
}
NFC картын сериал дугаар авах үед дараах функцыг дуудна
class PayProApi {
...
fun readCardUID(
context: Context,
timeout: Int,
callback: (PayProResponse<NFCCard>) -> Unit // NFC картын мэдээлэл хүлээж авах callback
)
...
}
[==============]
NFC карт амжилттай уншигдсан үед PayProResponse.Success
төрөлтэй хариу ирэх байх ба картын мэдээллийг data
талбараас авна.
api.readCardUID(context, timeout) {
when(it) {
is PayProResponse.Success -> {
// Амжилттай
val data = it.data // NFCCard төрөлтэй байна
}
is PayProResponse.Error -> {
// Амжилтгүй
}
}
}
NFCCard
class нь дараа бүтэцтэй байна
class NFCCard(
val uid: String, // Картын UID
)
Амжилтгүй болсон үед PayProResponse.Error
төрөлтэй хариу ирнэ. Шалтгааныг message
талбараас авна.
api.getDeviceInfo(context) {
when(it) {
is PayProResponse.Success -> {
}
is PayProResponse.Error -> {
// Амжилтгүй
println("алдаа: ${it.message}")
}
}
}
[==============]