Documentation Index Fetch the complete documentation index at: https://docs.oneclickdz.com/llms.txt
Use this file to discover all available pages before exploring further.
Vue d’ensemble
Avant d’envoyer une demande de recharge, validez toutes les saisies pour éviter les erreurs et garantir une expérience utilisateur fluide.
Une validation adéquate réduit les erreurs API et améliore l’expérience utilisateur en détectant les erreurs tôt.
Validation du numéro de téléphone
Les numéros de téléphone doivent correspondre à ce format : ^0[567][0-9]{8}$
Exigences :
Doit commencer par 0
Le deuxième chiffre doit être 5, 6 ou 7
Exactement 10 chiffres au total
Uniquement des caractères numériques
Exemples valides
Exemples invalides
✅ "0778037340"
✅ "0665983439"
✅ "0556121212"
❌ "778037340" - Zéro initial manquant
❌ "+213778037340" - Format international
❌ "0778 037 340" - Contient des espaces
function validatePhoneNumber ( phone ) {
if ( typeof phone !== 'string' ) {
return { valid: false , error: 'Phone number must be a string' };
}
phone = phone . trim ();
if ( ! / ^ 0 [ 567 ][ 0-9 ] {8} $ / . test ( phone )) {
return { valid: false , error: 'Invalid phone format. Must be 10 digits starting with 05, 06, or 07' };
}
return { valid: true , phone };
}
Validation du forfait
Vérifiez que le forfait sélectionné existe et est disponible :
function validatePlan ( planCode , plans ) {
const plan = plans . find ( p => p . code === planCode );
if ( ! plan ) {
return { valid: false , error: `Plan ${ planCode } not found` };
}
if ( ! plan . isEnabled ) {
return { valid: false , error: `Plan ${ plan . name } is currently unavailable` };
}
return { valid: true , plan };
}
Validation du montant
Validez les montants selon le type de forfait (dynamique ou fixe) :
function validateAmount ( amount , plan ) {
// Fixed plans use their predefined amount
if ( plan . type === 'fixed' ) {
return { valid: true , amount: plan . fixedAmount };
}
// Dynamic plans require amount within range
if ( ! amount ) {
return { valid: false , error: 'Amount is required for dynamic plans' };
}
const numAmount = Number ( amount );
if ( isNaN ( numAmount ) || ! Number . isInteger ( numAmount )) {
return { valid: false , error: 'Amount must be an integer' };
}
if ( numAmount < plan . minAmount ) {
return { valid: false , error: `Amount must be at least ${ plan . minAmount } DZD` };
}
if ( numAmount > plan . maxAmount ) {
return { valid: false , error: `Amount cannot exceed ${ plan . maxAmount } DZD` };
}
return { valid: true , amount: numAmount };
}
Validation complète
Combinez toutes les validations :
function validateTopUpRequest ( data , plans ) {
const errors = [];
// Validate phone
const phoneValidation = validatePhoneNumber ( data . phone );
if ( ! phoneValidation . valid ) {
errors . push ({ field: 'phone' , message: phoneValidation . error });
}
// Validate plan
const planValidation = validatePlan ( data . planCode , plans );
if ( ! planValidation . valid ) {
errors . push ({ field: 'planCode' , message: planValidation . error });
return { valid: false , errors };
}
// Validate amount
const amountValidation = validateAmount ( data . amount , planValidation . plan );
if ( ! amountValidation . valid ) {
errors . push ({ field: 'amount' , message: amountValidation . error });
}
if ( errors . length > 0 ) {
return { valid: false , errors };
}
return {
valid: true ,
data: {
phone: phoneValidation . phone ,
planCode: planValidation . plan . code ,
amount: amountValidation . amount
}
};
}
// Usage
const result = validateTopUpRequest ({
phone: '0778037340' ,
planCode: 'PREPAID_DJEZZY' ,
amount: 500
}, plans );
if ( ! result . valid ) {
console . error ( 'Validation errors:' , result . errors );
} else {
console . log ( 'Valid request:' , result . data );
}
Bonnes pratiques
Vérifiez les saisies dans l’interface avant d’effectuer des appels API pour améliorer l’UX.
Toujours valider côté serveur
Ne faites jamais confiance aux saisies client. Validez toujours côté serveur.
Fournir des messages d'erreur clairs
Affichez des messages d’erreur précis qui aident les utilisateurs à corriger les problèmes.
Supprimez les espaces et normalisez les saisies avant la validation.
Étapes suivantes
Étape 3 : Envoi des recharges Apprenez à envoyer des demandes de recharge
Référence API Documentation API complète