DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Nouveauté WINDEV Mobile 2025 !
Aide / WLangage / Fonctions WLangage / Fonctions spécifiques Mobile / Fonctions SMS
  • Fonctionnement
  • Mise en place d'une validation automatique par SMS
  • Cas particuliers
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
SMSDétecteCodeUsageUnique (Fonction)
En anglais : SMSDetectOneTimeCode
Remplit automatiquement un champ de saisie avec un code à usage unique reçu par SMS.
Exemple
// Déclenche pendant 5 minutes l'écoute des SMS reçu sur le téléphone 
// jusqu'à réception d'un SMS contenant le code d'authentification
SI SMSDétecteCodeUsageUnique(SurReceptionCodeAUsageUnique) ALORS
	// Affichage d'une jauge d'attente
	JAUGE_ATTENTE_CODE.Visible = Vrai
SINON
	Erreur()
FIN

PROCÉDURE SurReceptionCodeAUsageUnique(sCode est une chaîne)
// Affiche le code
SAI_Code = sCode
// Masque la jauge d'attente
JAUGE_ATTENTE_CODE.Visible = Faux
// Vérifie la validité du code reçu
VerifierCode()
Syntaxe
<Résultat> = SMSDétecteCodeUsageUnique(<Procédure WLangage>)
<Résultat> : Booléen
  • Vrai si la détection a été démarrée,
  • Faux dans le cas contraire.
<Procédure WLangage> : Nom de procédure
Nom de la procédure WLangage (également appelée "callback") appelée lors de la réception du code. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Code reçu>)
où <Code reçu> est une chaîne de caractères contenant le code reçu par SMS (ou une chaîne vide en cas d'erreur). En cas d'erreur, la fonction ErreurInfo permet de récupérer le message d'erreur.
Remarques

Fonctionnement

L'appel de la fonction SMSDétecteCodeUsageUnique déclenche l'écoute pendant 5 minutes des SMS reçus sur le téléphone. Si durant ce délai un SMS contenant un code à usage unique est reçu, la procédure passée à la fonction est automatiquement exécutée avec le code reçu en paramètre et la détection est arrêtée.
Le SMS contenant le code à usage unique doit respecter les critères suivants :
  • sa taille ne soit pas dépasser 140 octets.
  • il doit contenir un code à usage unique. Ce code doit être une suite de 4 à 10 chiffres (6 caractères minimum recommandé), sans séparateurs.
  • il doit se terminer par une chaîne de 11 caractères qui identifie votre application.
Exemple :
Votre code d'authentification est : 123456
HQ+6aVM7NXq
Remarque : La chaîne à la fin du SMS est une chaîne de hachage composée des élément suivants :
  • le nom du package de l'application.
  • le certificat de clé publique de l'application.
Vous pouvez trouver cette chaîne dans l'assistant de génération Android lorsque la fonction SMSDétecteCodeUsageUnique est présente dans le code de l'application.

Vous pouvez également générer cette chaîne avec l'outil keytool. Pour plus de détails, consultez Outil keytool.

Mise en place d'une validation automatique par SMS

La mise en place d'une validation automatique par SMS dans une application mobile nécessite un "backend" pour vérifier l'identité de l'utilisateur, effectuer l'envoi du SMS et contrôler le code à usage unique lorsqu'il est renvoyé au serveur pour effectuer toutes les tâches de post-validation requises.
La communication entre l'application mobile et le serveur est libre.
Une solution possible consiste à exposer une API REST avec deux points de terminaison :
  • un qui reçoit les requêtes de demande de validation avec les informations d'identification de l'utilisateur et envoie les messages par SMS au format attendu
  • un qui reçoit le code à usage unique reçu par l'application pour des traitements supplémentaires.
Conseil pour la génération du code SMS à usage unique : Il est conseillé de générer une suite de 6 à 10 chiffres aléatoire et de le stocker dans une table de base de données en associant ce code à un identifiant d'utilisateur et à une date d'expiration.

Cas particuliers

  • Si la fonction SMSDétecteCodeUsageUnique est exécutée alors qu'une détection est déjà en cours, l'appel sera ignoré et la fonction renverra Faux.
  • Il est possible de récupérer le ou les numéros de téléphone de l'utilisateur courant avec la fonction telRécupèreNuméro.
  • La fonction SMSDétecteCodeUsageUnique est sans effet dans le simulateur.
  • La fonction SMSDétecteCodeUsageUnique doit être appelée dans le thread principal de l'application et uniquement lorsque l'application est au premier plan.
Classification Métier / UI : Code neutre
Composante : wd300android.aar
Version minimum requise
  • Version 2025
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 13/09/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale