Guide d'Intégration du SDK Android
Vue d'ensemble
Le SDK Android MTVerify est un SDK d'authentification de numéro de mobile qui offre une vérification de numéro de téléphone rapide, sécurisée et de niveau opérateur.
Fonctionnalités Principales
- Initialisation du SDK : Récupère automatiquement la configuration et initialise via l'AppKey
- Vérification de couverture : Vérifie si l'environnement réseau actuel prend en charge le service d'authentification
- Authentification du numéro : Lance l'authentification du numéro de mobile et obtient un jeton d'authentification
Configuration Requise
- Android 5.0 (API 21) et supérieur
- L'appareil de l'utilisateur a les données mobiles activées
Guide d'Intégration
Configuration des Autorisations
Le package aar demande les autorisations suivantes :
<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" />
Configuration de l'Opérateur
Comme l'interface de l'opérateur nécessite une transmission HTTP en clair, vous devez configurer la politique de sécurité réseau dans le AndroidManifest.xml de votre application :
<application
android:networkSecurityConfig="@xml/mtverify_network_security_config"
...>
...
</application>
Vous devez également copier le fichier mtverify_network_security_config.xml dans le répertoire res/xml/ de votre application. Vous trouverez ce fichier dans le package d'installation que vous avez téléchargé.
Liste des Méthodes
- setLogEnable - Définir l'interrupteur des journaux
- init - Initialiser le SDK
- checkCoverage - Vérifier la couverture
- startAuthentication - Effectuer l'authentification
init
Initialise le SDK MTVerify et définit la clé d'application et la configuration de l'environnement.
Signature de la Méthode
@JvmStatic
fun init(
context: Context,
appkey: String,
environment: IPEnvironment = IPEnvironment.PRODUCTION,
callback: InitCallback? = null
)
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| context | Context | Oui | Objet de contexte Android |
| appkey | String | Oui | Clé d'application, utilisée pour identifier l'application |
| environment | IPEnvironment | Non | Type d'environnement, par défaut SANDBOX. Options : - IPEnvironment.SANDBOX : environnement de test/sandbox - IPEnvironment.PRODUCTION : environnement de production |
| callback | InitCallback? | Non | Interface de rappel d'initialisation, utilisée pour recevoir le résultat de l'initialisation |
Valeur de Retour
Aucune
Résultat du Rappel
Le résultat de l'initialisation est renvoyé via InitCallback.onComplete(result: InitResult) :
data class InitResult(
val code: Int, // Code de statut ; 0 signifie succès, les autres nombres signifient échec
val message: String? // Message (message de succès ou d'erreur)
)
Exemple d'Utilisation
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.PRODUCTION,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// Initialisation réussie
Log.d("MTVerify", "Initialisation réussie : ${result.message}")
} else {
// Échec de l'initialisation
Log.e("MTVerify", "Échec de l'initialisation : ${result.message}")
}
}
}
)
Remarques
- Vous devez d'abord appeler la méthode
init()pour initialiser le SDK avant d'utiliser d'autres fonctionnalités - Le processus d'initialisation récupère
clientIdetredirectUrlvia une requête HTTP et nécessite une connexion réseau
setLogEnable
Définit l'interrupteur des journaux pour contrôler la sortie des journaux du SDK.
Signature de la Méthode
@JvmStatic
fun setLogEnable(enable: Boolean)
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| enable | Boolean | Oui | true active la journalisation, false désactive toute sortie de journaux |
Exemple d'Utilisation
// Activer la journalisation
MTVerifyApi.setLogEnable(true)
// Désactiver la journalisation
MTVerifyApi.setLogEnable(false)
checkCoverage
Vérifie si le numéro de mobile spécifié prend en charge le service de vérification IPification.
Signature de la Méthode
@JvmStatic
fun checkCoverage(
context: Context,
phoneNumber: String,
callback: CoverageCallback? = null
)
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| context | Context | Oui | Objet de contexte Android |
| phoneNumber | String | Oui | Indicatif du pays + numéro de mobile de l'utilisateur |
| callback | CoverageCallback? | Non | Interface de rappel de la vérification de couverture |
Valeur de Retour
Aucune
Résultat du Rappel
Le résultat de la vérification est renvoyé via CoverageCallback.onComplete(result: CoverageResult) :
data class CoverageResult(
val code: Int, // Code de statut ; 0 signifie succès, les autres nombres signifient échec
val isAvailable: Boolean, // Si disponible (opérateur pris en charge)
val operatorCode: String?, // Code de l'opérateur
val message: String? // Message (message de succès ou d'erreur)
)
Exemple d'Utilisation
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.code == 0) {
if (result.isAvailable) {
// Le service est pris en charge
Log.d("MTVerify", "Opérateur pris en charge : ${result.operatorCode}")
} else {
// Le service n'est pas pris en charge
Log.d("MTVerify", "Opérateur non pris en charge")
}
} else {
// Échec de la vérification
Log.e("MTVerify", "Échec de la vérification : ${result.message}")
}
}
}
)
startAuthentication
Démarre le flux d'authentification du numéro de mobile.
Signature de la Méthode
@JvmStatic
fun startAuthentication(
activity: Activity,
countryCode: String,
phoneNumber: String,
callback: AuthenticationCallback? = null
)
Paramètres
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| activity | Activity | Oui | Objet Activity Android, utilisé pour afficher l'interface d'authentification |
| countryCode | String | Oui | Indicatif du pays |
| phoneNumber | String | Oui | Numéro de mobile de l'utilisateur (sans indicatif du pays) |
| callback | AuthenticationCallback? | Non | Interface de rappel d'authentification |
Valeur de Retour
Aucune
Résultat du Rappel
Le résultat de l'authentification est renvoyé via AuthenticationCallback.onComplete(result: AuthenticationResult) :
data class AuthenticationResult(
val code: Int, // Code de statut ; 0 signifie succès, -1 signifie échec, -2 signifie annulé par l'utilisateur
val token: String?, // Données d'authentification chiffrées (une chaîne JSON contenant le code, chiffrée en AES)
val message: String? // Message (message de succès ou d'erreur)
)
Remarque : token est une chaîne JSON chiffrée au format suivant :
{
"version": "1",
"content": {
"code": "code d'authentification",
"state": "paramètre d'état",
"appkey": "clé d'application"
}
}
Exemple d'Utilisation
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
when (result.code) {
0 -> {
// Authentification réussie
val token = result.token
// Le jeton est utilisé pour échanger le résultat
Log.d("MTVerify", "Authentification réussie : $token")
}
-1 -> {
// Échec de l'authentification
Log.e("MTVerify", "Échec de l'authentification : ${result.message}")
}
-2 -> {
// Annulé par l'utilisateur
Log.d("MTVerify", "L'utilisateur a annulé l'authentification")
}
}
}
}
)
Modèles de Données
IPEnvironment
Énumération du type d'environnement :
enum class IPEnvironment {
SANDBOX, // Environnement de test/sandbox
PRODUCTION // Environnement de production
}
InitResult
Résultat de l'initialisation :
data class InitResult(
val code: Int, // Code de statut ; 0 signifie succès
val message: String? // Message
)
CoverageResult
Résultat de la vérification de couverture :
data class CoverageResult(
val code: Int, // Code de statut ; 0 signifie succès
val isAvailable: Boolean, // Si disponible
val operatorCode: String?, // Code de l'opérateur
val message: String? // Message
)
AuthenticationResult
Résultat de l'authentification :
data class AuthenticationResult(
val code: Int, // Code de statut ; 0 signifie succès, -1 signifie échec, -2 signifie annulé par l'utilisateur
val token: String?, // Jeton d'authentification chiffré
val message: String? // Message
)
Interfaces de Rappel
InitCallback
Interface de rappel d'initialisation :
interface InitCallback {
fun onComplete(result: InitResult)
}
CoverageCallback
Interface de rappel de la vérification de couverture :
interface CoverageCallback {
fun onComplete(result: CoverageResult)
}
AuthenticationCallback
Interface de rappel d'authentification :
interface AuthenticationCallback {
fun onComplete(result: AuthenticationResult)
}
Exemple Complet
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// 1. Activer la journalisation (facultatif)
MTVerifyApi.setLogEnable(true)
// 2. Initialiser le SDK
MTVerifyApi.init(
context = this,
appkey = "your_app_key",
environment = IPEnvironment.SANDBOX,
callback = object : InitCallback {
override fun onComplete(result: InitResult) {
if (result.code == 0) {
// Initialisation réussie ; vous pouvez commencer à utiliser d'autres fonctionnalités
checkCoverage()
}
}
}
)
}
private fun checkCoverage() {
// 3. Vérifier la couverture
MTVerifyApi.checkCoverage(
context = this,
phoneNumber = "6281234567890",
callback = object : CoverageCallback {
override fun onComplete(result: CoverageResult) {
if (result.isAvailable) {
// 4. Si pris en charge, effectuer l'authentification
startAuthentication()
}
}
}
)
}
private fun startAuthentication() {
// 5. Effectuer l'authentification
MTVerifyApi.startAuthentication(
activity = this,
countryCode = "62",
phoneNumber = "81234567890",
callback = object : AuthenticationCallback {
override fun onComplete(result: AuthenticationResult) {
if (result.code == 0) {
// Authentification réussie ; traiter le jeton
handleToken(result.token)
}
}
}
)
}
private fun handleToken(token: String?) {
// Appeler l'API pour traiter le jeton échangé
}
}
Remarques
- Ordre d'initialisation : Vous devez d'abord appeler la méthode
init()pour initialiser le SDK avant d'utiliser d'autres fonctionnalités. - Sécurité des threads : Toutes les méthodes de l'API peuvent être appelées sur le thread principal, et les rappels sont également exécutés sur le thread principal.
- Exigences d'autorisation : Assurez-vous que l'application a demandé les autorisations réseau nécessaires.
- Déchiffrement du jeton : Le jeton renvoyé après une authentification réussie est chiffré et doit être traité avec la méthode de déchiffrement correspondante.
- Contrôle des journaux : Il est recommandé de désactiver la sortie des journaux dans l'environnement de production afin d'améliorer les performances et la sécurité.
Informations sur la Version
- Version du SDK : 1.0.1










