Convalida dei numeri di carta di credito — algoritmo di Luhn e riconoscimento del circuito
Inserendo il numero di una carta di credito, ne verifica la cifra di controllo con l'algoritmo di Luhn e ne riconosce automaticamente il circuito: Visa, Mastercard, American Express e gli altri. Comodo anche per collaudare la convalida dei moduli.
[[ labels.client_side_note ]]
[[ labels.result_label ]]
| [[ labels.formatted_label ]] | [[ result.formatted ]] |
|---|---|
| [[ labels.brand_label ]] | [[ brandName ]] [[ labels.brand_unknown ]] |
| [[ labels.checksum_label ]] | ✓ [[ labels.checksum_valid ]] ✗ [[ labels.checksum_invalid ]] |
Circuiti previsti e criteri di riconoscimento (prefisso e numero di cifre)
| Circuito | Cifre iniziali (prefisso dell'emittente) | Numero di cifre |
|---|---|---|
| Visa | 4 | 13, 16, 19 |
| Mastercard | 51–55, 2221–2720 | 16 |
| American Express | 34, 37 | 15 |
| Discover | 6011, 65 | 16 |
| JCB | 3528–3589 | 16 |
| Diners Club | 300–305, 36, 38 | 14 |
| UnionPay | 62 | 16–19 |
Che cosa fa questo validatore di numeri di carta
Ogni numero di carta di credito porta in fondo una cifra di controllo pensata per intercettare gli errori di digitazione. Verificando la sequenza con l’algoritmo di Luhn si scopre la maggior parte degli sbagli su una singola cifra e delle inversioni fra cifre contigue. Questo strumento esegue tale verifica e ricava inoltre il circuito della carta dalle cifre iniziali e dalla lunghezza.
Il punto essenziale è che si tratta soltanto di una validazione del formato. Anche superando il controllo di Luhn, il numero non corrisponde necessariamente a una carta esistente, né dice se sia utilizzabile. L’autorizzazione vera e propria deve passare dall’API di un gestore dei pagamenti. Il numero inserito viene elaborato solo nel suo browser e non è inviato all’esterno.
Come si verifica un numero
- Inserisca il numero Spazi e trattini vengono rimossi automaticamente, perciò può incollare il valore così come lo ha copiato.
- Osservi l’esito della cifra di controllo Il risultato dell’algoritmo di Luhn compare come valido o non valido. Se non è valido, c’è un errore in qualche cifra.
- Verifichi il circuito individuato Il circuito si ricava dalle cifre iniziali e dalla lunghezza. La tabella sottostante riporta le condizioni applicate.
- Provi il comportamento con un esempio Il pulsante di esempio inserisce un numero di prova, così può verificare il funzionamento senza usare un numero reale.
Consigli per sfruttarlo al meglio
- Provate il funzionamento con i numeri di prova offerti dal pulsante degli esempi, come 4111 1111 1111 1111 per Visa, anziché con numeri di carte reali.
- Spazi e trattini sono rimossi automaticamente prima della verifica: potete quindi incollare senz'altro un numero copiato altrove.
- La verifica di questo strumento riguarda soltanto la forma, secondo l'algoritmo di Luhn. Il controllo effettivo del credito e del saldo va effettuato tramite l'interfaccia del vostro fornitore di servizi di pagamento.
- Realizzando la convalida di un modulo, conviene preparare qui tanto i casi corretti quanto quelli errati e verificarli entrambi.
Quando è utile
Realizzare la validazione di un modulo
Confronti il responso della sua validazione con quello ottenuto qui. Può predisporre sia i casi corretti sia quelli errati.
Controllare la logica di individuazione del circuito
Nella tabella si vede quale circuito derivi da ciascuna combinazione di cifre iniziali e lunghezza: utile quando deve mostrare l’icona della carta corrispondente.
Isolare un errore di digitazione
Se un pagamento non va a buon fine, può verificare prima se sia sbagliato il formato stesso del numero, accorciando la diagnosi.
Imparare l’algoritmo di Luhn
Cambi una sola cifra e vedrà la verifica passare a non valida: il meccanismo diventa immediatamente concreto.
Termini sui numeri di carta
- Algoritmo di Luhn
- Metodo di calcolo che verifica la plausibilità di una sequenza di cifre. Partendo da destra si raddoppia una cifra sì e una no, si somma il tutto e, se il totale è divisibile per 10, il numero è considerato valido.
- Cifra di controllo
- Cifra aggiunta in fondo per intercettare gli errori di digitazione. Si ricava per calcolo dalle altre posizioni.
- IIN
- Numero identificativo dell’emittente posto all’inizio del numero di carta. Da esso si distinguono il circuito e l’istituto emittente.
- Circuito
- Circuiti internazionali come Visa, Mastercard o American Express. Si determina dalla combinazione di cifre iniziali e lunghezza.
- Autorizzazione
- Procedura che verifica se la carta sia davvero utilizzabile e se il plafond disponibile basti. È del tutto distinta dalla validazione del formato.
Domande frequenti
A proposito — Hans Peter Luhn, il padre della cifra di controllo
La cifra di controllo inserita in coda al numero di una carta di credito si verifica con un algoritmo ideato nel 1954 da Hans Peter Luhn, ingegnere di IBM. Ne ottenne il brevetto nel 1960, ma il brevetto è ormai scaduto e l'algoritmo è oggi di pubblico dominio e liberamente utilizzabile.
Il funzionamento è sorprendentemente semplice: a partire dall'estrema destra si raddoppia una cifra sì e una no e, se il risultato ha due cifre, se ne sommano le cifre, per esempio 8 per 2 fa 16 e quindi 1 più 6 uguale 7. Se la somma di tutte le cifre è divisibile per dieci, il numero è formalmente valido.
L'algoritmo non serve soltanto alle carte di credito: si applica al rilevamento degli errori di digitazione in molti altri identificativi, come il codice che individua un telefono cellulare o certi numeri di previdenza sociale. Va però ricordato che serve unicamente a scoprire gli errori di battitura e non stabilisce né se la carta esista né se abbia credito disponibile.
Le prime sei o otto cifre del numero costituiscono il prefisso dell'emittente e recano l'informazione su quale circuito internazionale e quale banca abbiano emesso la carta. Anche il riconoscimento del circuito offerto da questo strumento si fonda sugli intervalli di quel prefisso.