Panduan Integrasi SDK Android
Ikhtisar
SDK Android MTVerify adalah SDK autentikasi nomor ponsel yang menyediakan verifikasi nomor telepon yang cepat, aman, dan tingkat operator.
Fitur Utama
- Inisialisasi SDK: Mengambil konfigurasi secara otomatis dan menginisialisasi melalui AppKey
- Pemeriksaan cakupan: Memeriksa apakah lingkungan jaringan saat ini mendukung layanan autentikasi
- Autentikasi nomor: Memulai autentikasi nomor ponsel dan memperoleh token autentikasi
Persyaratan Sistem
- Android 5.0 (API 21) ke atas
- Perangkat pengguna telah mengaktifkan data seluler
Panduan Integrasi
Konfigurasi Izin
Paket aar meminta izin berikut:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
Konfigurasi Operator
Karena antarmuka operator memerlukan transmisi teks biasa HTTP, Anda perlu mengonfigurasi kebijakan keamanan jaringan di AndroidManifest.xml aplikasi Anda:
<application
android:networkSecurityConfig="@xml/mtverify_network_security_config"
...>
...
</application>
Anda juga perlu menyalin file mtverify_network_security_config.xml ke direktori res/xml/ aplikasi Anda. Anda dapat menemukan file ini di paket instalasi yang Anda unduh.
Daftar Metode
- setLogEnable - Mengatur sakelar log
- init - Menginisialisasi SDK
- checkCoverage - Memeriksa cakupan
- startAuthentication - Melakukan autentikasi
init
Menginisialisasi SDK MTVerify serta mengatur kunci aplikasi dan konfigurasi lingkungan.
Tanda Tangan Metode
@JvmStatic
fun init(
context: Context,
appkey: String,
environment: IPEnvironment = IPEnvironment.PRODUCTION,
callback: InitCallback? = null
)
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| context | Context | Ya | Objek konteks Android |
| appkey | String | Ya | Kunci aplikasi, digunakan untuk mengidentifikasi aplikasi |
| environment | IPEnvironment | Tidak | Tipe lingkungan, default SANDBOX. Opsi: - IPEnvironment.SANDBOX: lingkungan uji/sandbox - IPEnvironment.PRODUCTION: lingkungan produksi |
| callback | InitCallback? | Tidak | Antarmuka callback inisialisasi, digunakan untuk menerima hasil inisialisasi |
Nilai Kembalian
Tidak ada
Hasil Callback
Hasil inisialisasi dikembalikan melalui InitCallback.onComplete(result: InitResult):
data class InitResult(
val code: Int, // Kode status; 0 berarti berhasil, angka lain berarti gagal
val message: String? // Pesan (pesan berhasil atau kesalahan)
)
Contoh Penggunaan
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.PRODUCTION,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// Inisialisasi berhasil
Log.d("MTVerify", "Inisialisasi berhasil: ${result.message}")
} else {
// Inisialisasi gagal
Log.e("MTVerify", "Inisialisasi gagal: ${result.message}")
}
}
}
)
Catatan
- Anda harus memanggil metode
init()untuk menginisialisasi SDK terlebih dahulu sebelum menggunakan fitur lain - Proses inisialisasi mengambil
clientIddanredirectUrlmelalui permintaan HTTP dan memerlukan koneksi jaringan
setLogEnable
Mengatur sakelar log untuk mengontrol keluaran log SDK.
Tanda Tangan Metode
@JvmStatic
fun setLogEnable(enable: Boolean)
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| enable | Boolean | Ya | true mengaktifkan log, false menonaktifkan semua keluaran log |
Contoh Penggunaan
// Mengaktifkan log
MTVerifyApi.setLogEnable(true)
// Menonaktifkan log
MTVerifyApi.setLogEnable(false)
checkCoverage
Memeriksa apakah nomor ponsel yang ditentukan mendukung layanan verifikasi IPification.
Tanda Tangan Metode
@JvmStatic
fun checkCoverage(
context: Context,
phoneNumber: String,
callback: CoverageCallback? = null
)
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| context | Context | Ya | Objek konteks Android |
| phoneNumber | String | Ya | Kode negara + nomor ponsel pengguna |
| callback | CoverageCallback? | Tidak | Antarmuka callback pemeriksaan cakupan |
Nilai Kembalian
Tidak ada
Hasil Callback
Hasil pemeriksaan dikembalikan melalui CoverageCallback.onComplete(result: CoverageResult):
data class CoverageResult(
val code: Int, // Kode status; 0 berarti berhasil, angka lain berarti gagal
val isAvailable: Boolean, // Apakah tersedia (operator yang didukung)
val operatorCode: String?, // Kode operator
val message: String? // Pesan (pesan berhasil atau kesalahan)
)
Contoh Penggunaan
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.code == 0) {
if (result.isAvailable) {
// Layanan didukung
Log.d("MTVerify", "Operator didukung: ${result.operatorCode}")
} else {
// Layanan tidak didukung
Log.d("MTVerify", "Operator tidak didukung")
}
} else {
// Pemeriksaan gagal
Log.e("MTVerify", "Pemeriksaan gagal: ${result.message}")
}
}
}
)
startAuthentication
Memulai alur autentikasi nomor ponsel.
Tanda Tangan Metode
@JvmStatic
fun startAuthentication(
activity: Activity,
countryCode: String,
phoneNumber: String,
callback: AuthenticationCallback? = null
)
Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| activity | Activity | Ya | Objek Activity Android, digunakan untuk menampilkan antarmuka autentikasi |
| countryCode | String | Ya | Kode negara |
| phoneNumber | String | Ya | Nomor ponsel pengguna (tanpa kode negara) |
| callback | AuthenticationCallback? | Tidak | Antarmuka callback autentikasi |
Nilai Kembalian
Tidak ada
Hasil Callback
Hasil autentikasi dikembalikan melalui AuthenticationCallback.onComplete(result: AuthenticationResult):
data class AuthenticationResult(
val code: Int, // Kode status; 0 berarti berhasil, -1 berarti gagal, -2 berarti dibatalkan pengguna
val token: String?, // Data autentikasi terenkripsi (string JSON yang berisi code, dienkripsi AES)
val message: String? // Pesan (pesan berhasil atau kesalahan)
)
Catatan: token adalah string JSON terenkripsi dengan format berikut:
{
"version": "1",
"content": {
"code": "kode autentikasi",
"state": "parameter status",
"appkey": "kunci aplikasi"
}
}
Contoh Penggunaan
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
when (result.code) {
0 -> {
// Autentikasi berhasil
val token = result.token
// token digunakan untuk menukar hasil
Log.d("MTVerify", "Autentikasi berhasil: $token")
}
-1 -> {
// Autentikasi gagal
Log.e("MTVerify", "Autentikasi gagal: ${result.message}")
}
-2 -> {
// Dibatalkan pengguna
Log.d("MTVerify", "Pengguna membatalkan autentikasi")
}
}
}
}
)
Model Data
IPEnvironment
Enum tipe lingkungan:
enum class IPEnvironment {
SANDBOX, // Lingkungan uji/sandbox
PRODUCTION // Lingkungan produksi
}
InitResult
Hasil inisialisasi:
data class InitResult(
val code: Int, // Kode status; 0 berarti berhasil
val message: String? // Pesan
)
CoverageResult
Hasil pemeriksaan cakupan:
data class CoverageResult(
val code: Int, // Kode status; 0 berarti berhasil
val isAvailable: Boolean, // Apakah tersedia
val operatorCode: String?, // Kode operator
val message: String? // Pesan
)
AuthenticationResult
Hasil autentikasi:
data class AuthenticationResult(
val code: Int, // Kode status; 0 berarti berhasil, -1 berarti gagal, -2 berarti dibatalkan pengguna
val token: String?, // Token autentikasi terenkripsi
val message: String? // Pesan
)
Antarmuka Callback
InitCallback
Antarmuka callback inisialisasi:
interface InitCallback {
fun onComplete(result: InitResult)
}
CoverageCallback
Antarmuka callback pemeriksaan cakupan:
interface CoverageCallback {
fun onComplete(result: CoverageResult)
}
AuthenticationCallback
Antarmuka callback autentikasi:
interface AuthenticationCallback {
fun onComplete(result: AuthenticationResult)
}
Contoh Lengkap
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. Mengaktifkan log (opsional)
MTVerifyApi.setLogEnable(true)
// 2. Menginisialisasi SDK
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.SANDBOX,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// Inisialisasi berhasil; Anda dapat mulai menggunakan fitur lain
checkCoverage()
}
}
}
)
}
private fun checkCoverage() {
// 3. Memeriksa cakupan
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.isAvailable) {
// 4. Jika didukung, lakukan autentikasi
startAuthentication()
}
}
}
)
}
private fun startAuthentication() {
// 5. Melakukan autentikasi
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
if (result.code == 0) {
// Autentikasi berhasil; tangani token
handleToken(result.token)
}
}
}
)
}
private fun handleToken(token: String?) {
// Panggil API untuk menangani token yang telah ditukar
}
}
Catatan
- Urutan inisialisasi: Anda harus memanggil metode
init()untuk menginisialisasi SDK terlebih dahulu sebelum menggunakan fitur lain. - Keamanan thread: Semua metode API dapat dipanggil di thread utama, dan callback juga dijalankan di thread utama.
- Persyaratan izin: Pastikan aplikasi telah meminta izin jaringan yang diperlukan.
- Dekripsi token: Token yang dikembalikan setelah autentikasi berhasil terenkripsi dan harus diproses menggunakan metode dekripsi yang sesuai.
- Kontrol log: Disarankan untuk menonaktifkan keluaran log di lingkungan produksi guna meningkatkan kinerja dan keamanan.
Informasi Versi
- Versi SDK: 1.0.1










