Android SDK
Omise Android SDK ให้บริการโซลูชันที่ครอบคลุมสำหรับการผสานรวมการประมวลผลการชำ ระเงินเข้ากับแอปพลิเคชัน Android ของคุณ สร้างขึ้นด้วย Kotlin และเข้ากันได้อย่างสมบูรณ์กับ Java โดยให้บริการการสร้าง token ที่ปลอดภัย คอมโพเนนต์ Material Design แบบ native และรองรับวิธีการชำระเงินหลักทั้งหมดในเอเชียตะวันออกเฉียงใต้
ภาพรวม
Android SDK ช่วยให้คุณสามารถ:
- สร้าง token บัตรเครดิต อย่างปลอดภัยโดยไม่ให้ข้อมูลที่ละเอียดอ่อนเข้าถึงเซิร์ฟเวอร์ของคุณ
- สร้าง payment source สำหรับวิธีการชำระเงินทางเลือก
- ใช้งาน 3D Secure authentication ด้วย Chrome Custom Tabs
- สร้างฟอร์มการชำระเงินที่กำหนดเอง ด้วยคอมโพเนนต์ Material Design
- รองรับการยืนยันตัวตนแบบไบโอเมตริกซ์ ด้วยลายนิ้วมือและการปลดล็อกใบหน้า
- จัดการข้อผิดพลาดอย่างเหมาะสม ด้วยการจัดการข้อยกเว้นที่ครอบคลุม
คุณสมบัติหลัก
- Native Kotlin API พร้อมรองรับ coroutines
- ความเข้ากันได้กับ Java อย่างสมบูรณ์สำหรับโปรเจกต์เก่า
- คอมโพเนนต์ UI Material Design ที่สร้างไว้ล่วงหน้า
- รองรับ Jetpack Compose
- การตรวจสอบความถูกต้องของข้อมูลนำเข้าที่ครอบคลุม
- ความยืดหยุ่นของเครือข่ายด้วยการลองใหม่อัตโนมัติ
- ตัวสร้างคำขอที่ปลอดภัยต่อประเภท
- รองรับ AndroidX และ Material Components
ข้อกำหนด
- Android API Level 21 (Android 5.0) หรือสูงกว่า
- Android Studio Arctic Fox หรือใหม่กว่า
- Kotlin 1.5+ หรือ Java 8+
- Gradle 7.0+
- ไลบรารี AndroidX
การติดตั้ง
Gradle (แนะนำ)
เพิ่ม SDK เข้าไปใน build.gradle ของแอปคุณ:
dependencies {
implementation 'co.omise:omise-android:4.0.0'
}
สำหรับ Kotlin DSL (build.gradle.kts):
dependencies {
implementation("co.omise:omise-android:4.0.0")
}
Maven
<dependency>
<groupId>co.omise</groupId>
<artifactId>omise-android</artifactId>
<version>4.0.0</version>
</dependency>
สิทธิ์
เพิ่มเข้าไปใน AndroidManifest.xml ของคุณ:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
เริ่มต้นอย่างรวดเร็ว
1. Import SDK
// Kotlin
import co.omise.android.Client
import co.omise.android.models.Token
import co.omise.android.models.Source
// Java
import co.omise.android.Client;
import co.omise.android.models.Token;
import co.omise.android.models.Source;
2. เริ่มต้น Client
// Kotlin
class PaymentManager(context: Context) {
private val client = Client("pkey_test_5xyzyx5xyzyx5xyzyx5")
}
// Java
public class PaymentManager {
private final Client client;
public PaymentManager(Context context) {
client = new Client("pkey_test_5xyzyx5xyzyx5xyzyx5");
}
}
3. สร้าง Token
ใช้ Kotlin Coroutines
import kotlinx.coroutines.*
import co.omise.android.api.RequestListener
class PaymentViewModel : ViewModel() {
fun createToken(
name: String,
number: String,
expirationMonth: Int,
expirationYear: Int,
securityCode: String
) {
viewModelScope.launch {
try {
val token = suspendCancellableCoroutine<Token> { continuation ->
val request = Token.CreateTokenRequest(
name = name,
number = number,
expirationMonth = expirationMonth,
expirationYear = expirationYear,
securityCode = securityCode
)
client.send(request, object : RequestListener<Token> {
override fun onRequestSucceed(model: Token) {
continuation.resume(model)
}
override fun onRequestFailed(throwable: Throwable) {
continuation.resumeWithException(throwable)
}
})
}
Log.d("Payment", "Token created: ${token.id}")
sendTokenToServer(token.id)
} catch (e: Exception) {
Log.e("Payment", "Error creating token", e)
handleError(e)
}
}
}
}
ใช้ Callbacks
// Kotlin
fun createToken(
name: String,
number: String,
expirationMonth: Int,
expirationYear: Int,
securityCode: String
) {
val request = Token.CreateTokenRequest(
name = name,
number = number,
expirationMonth = expirationMonth,
expirationYear = expirationYear,
securityCode = securityCode
)
client.send(request, object : RequestListener<Token> {
override fun onRequestSucceed(model: Token) {
Log.d("Payment", "Token created: ${model.id}")
sendTokenToServer(model.id)
}
override fun onRequestFailed(throwable: Throwable) {
Log.e("Payment", "Error creating token", throwable)
handleError(throwable)
}
})
}
Java
// Java
public void createToken(
String name,
String number,
int expirationMonth,
int expirationYear,
String securityCode
) {
Token.CreateTokenRequest request = new Token.CreateTokenRequest(
name,
number,
expirationMonth,
expirationYear,
securityCode
);
client.send(request, new RequestListener<Token>() {
@Override
public void onRequestSucceed(Token token) {
Log.d("Payment", "Token created: " + token.getId());
sendTokenToServer(token.getId());
}
@Override
public void onRequestFailed(Throwable throwable) {
Log.e("Payment", "Error creating token", throwable);
handleError(throwable);
}
});
}
การกำหนดค่า
การกำหนดค่า Client
// การกำหนดค่าพื้นฐาน
val client = Client("pkey_test_5xyzyx5xyzyx5xyzyx5")
// การกำหนดค่าขั้นสูง
val config = Client.Config(
publicKey = "pkey_test_5xyzyx5xyzyx5xyzyx5",
apiVersion = "2019-05-29",
timeout = 60000L, // milliseconds
enableDebug = BuildConfig.DEBUG
)
val client = Client(config)
การกำหนดค่าเครือข่าย
import okhttp3.OkHttpClient
import java.util.concurrent.TimeUnit
val okHttpClient = OkHttpClient.Builder()
.connectTimeout(30, TimeUnit.SECONDS)
.readTimeout(30, TimeUnit.SECONDS)
.writeTimeout(30, TimeUnit.SECONDS)
.build()
val client = Client(
publicKey = "pkey_test_5xyzyx5xyzyx5xyzyx5",
httpClient = okHttpClient
)
การสร้าง Token
การสร้าง Token บัตรพื้นฐาน
fun tokenizeCard(
name: String,
number: String,
expirationMonth: Int,
expirationYear: Int,
securityCode: String,
callback: (Result<Token>) -> Unit
) {
val request = Token.CreateTokenRequest(
name = name,
number = number,
expirationMonth = expirationMonth,
expirationYear = expirationYear,
securityCode = securityCode
)
client.send(request, object : RequestListener<Token> {
override fun onRequestSucceed(model: Token) {
callback(Result.success(model))
}
override fun onRequestFailed(throwable: Throwable) {
callback(Result.failure(throwable))
}
})
}