Validez toujours les numéros de téléphone avant de soumettre des commandes de recharge internet. Cela prévient les erreurs, réduit les remboursements et améliore l’expérience utilisateur en détectant immédiatement les problèmes de format.
Étape critique : La validation prévient 90% des échecs de commande. Ne sautez jamais cette étape.
async function validateCompleteFlow(type, number) { // Étape 1 : Valider le type de service if (!['ADSL', '4G'].includes(type)) { return { valid: false, error: 'INVALID_TYPE', message: 'Service type must be ADSL or 4G' }; } // Étape 2 : Vérification du format côté client if (!validateFormat(type, number)) { return { valid: false, error: 'INVALID_FORMAT', message: type === 'ADSL' ? 'ADSL numbers must be 9 digits starting with 0 (e.g., 036362608)' : '4G numbers must be 12 digits starting with 213 (e.g., 213665983439)' }; } // Étape 3 : Validation via API try { await validateInternetNumber(type, number); return { valid: true, type, number }; } catch (error) { return { valid: false, error: 'API_VALIDATION_FAILED', message: error.message }; }}// Usageconst result = await validateCompleteFlow('ADSL', '036362608');if (!result.valid) { console.error(`Validation failed: ${result.message}`);} else { console.log('✅ Ready to place order');}
Fournissez des retours clairs selon le type d’erreur :
function getValidationErrorMessage(type, error) { const messages = { INVALID_TYPE: 'Veuillez sélectionner ADSL ou 4G comme type de service.', INVALID_FORMAT: { ADSL: 'Veuillez saisir un numéro ADSL valide (9 chiffres commençant par 0).\nExemple : 036362608', '4G': 'Veuillez saisir un numéro 4G valide (12 chiffres commençant par 213).\nExemple : 213665983439' }, API_VALIDATION_FAILED: { default: 'Ce numéro n\'est pas valide pour le type de service sélectionné.', 'ERR_PHONE': 'Ce numéro ne peut pas être utilisé pour la recharge internet.' } }; if (error === 'INVALID_FORMAT') { return messages.INVALID_FORMAT[type]; } if (error === 'API_VALIDATION_FAILED') { return messages.API_VALIDATION_FAILED.default; } return messages[error] || 'Impossible de valider le numéro. Veuillez réessayer.';}