zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 16 janv. 2009 à 15:52
La date ne fait pas partie de cet algorithme.... rendu la je crois que c'est la compagnie tel que Visa qui doit valider l'info.
Iriven
Messages postés72Date d'inscriptionsamedi 23 juin 2007StatutMembreDernière intervention 3 février 2014 2 oct. 2008 à 15:01
salut!
l'idée de cette source est bonne mais je la trouve incomplete car que fais tu de la date d'expiration de la carte? moi je preconiserais plutot une classe gerant tous les parametres à verifier sur une carte avant acceptation du payement.
cs_romain42
Messages postés18Date d'inscriptionvendredi 16 juillet 2004StatutMembreDernière intervention18 septembre 2008 17 sept. 2008 à 17:41
Exacte et puis c'est toujours intéressent de voir comment ca fonctionne !
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 17 sept. 2008 à 15:44
romain42 : en effet mais bon celui ci est plus complet car il valide aussi que le bon type de carte a ete choisi... alors au pire aller, c'est pour des faims educative :P
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 16 sept. 2008 à 16:29
Bon premierement voici les parametres pour les 3 types de carte principaux:
Type: MASTERCARD
Prefix: 51-55
Longueur: 16
Algo de validation: mod 10
Type: VISA
Prefix: 4
Longueur: 13, 16
Algo de validation: mod 10
Type: AMEX
Prefix: 34 ou 37
Longueur: 15
Algo de validation: mod 10
Etape 1:
On double la valeur de chaque 2 de 2 en commencant par le 2e caractere comme ceci:
49927398716 devient
4(18)9(4)7(6)9(16)7(2)6 (les chiffre qui sont entre parantese le sont simplement pour rendre plus clair l'exemple)
Etape 2:
On additionne en decomposant les sum obtenues en 1 comme ceci:
4+(1+8)+9+(4)+7+(6)+9+(1+6)+7+(2)+6
Somme = 70 (la somme doit etre un multiple de 10 si non la carte n'est pas valide)
Etape 3:
Sum(etape2) % 10 = 0
Le resultat DOIT etre zero
cs_romain42
Messages postés18Date d'inscriptionvendredi 16 juillet 2004StatutMembreDernière intervention18 septembre 2008 16 sept. 2008 à 16:00
zen69
Messages postés584Date d'inscriptionjeudi 28 décembre 2006StatutMembreDernière intervention29 avril 20101 16 sept. 2008 à 15:56
Ah ouais !? loll moi qui a passé une journée à tous comprendre et programmer :P
Explications à venir
cs_romain42
Messages postés18Date d'inscriptionvendredi 16 juillet 2004StatutMembreDernière intervention18 septembre 2008 16 sept. 2008 à 15:43
En effet c'est assez intéressent mais pourrais tu aporter plus d'explication à ta sources (principalement sur l'algorithme utilisée)?
Il me semble aussi que le Zend Framework propose, par défaut, un validateur pour les cartes de crédit.
Bonne continuation.
romain
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 16 sept. 2008 à 09:00
16 janv. 2009 à 15:52
2 oct. 2008 à 15:01
l'idée de cette source est bonne mais je la trouve incomplete car que fais tu de la date d'expiration de la carte? moi je preconiserais plutot une classe gerant tous les parametres à verifier sur une carte avant acceptation du payement.
17 sept. 2008 à 17:41
17 sept. 2008 à 15:44
16 sept. 2008 à 16:29
Type: MASTERCARD
Prefix: 51-55
Longueur: 16
Algo de validation: mod 10
Type: VISA
Prefix: 4
Longueur: 13, 16
Algo de validation: mod 10
Type: AMEX
Prefix: 34 ou 37
Longueur: 15
Algo de validation: mod 10
Etape 1:
On double la valeur de chaque 2 de 2 en commencant par le 2e caractere comme ceci:
49927398716 devient
4(18)9(4)7(6)9(16)7(2)6 (les chiffre qui sont entre parantese le sont simplement pour rendre plus clair l'exemple)
Etape 2:
On additionne en decomposant les sum obtenues en 1 comme ceci:
4+(1+8)+9+(4)+7+(6)+9+(1+6)+7+(2)+6
Somme = 70 (la somme doit etre un multiple de 10 si non la carte n'est pas valide)
Etape 3:
Sum(etape2) % 10 = 0
Le resultat DOIT etre zero
16 sept. 2008 à 16:00
Retourne true si et seulement si $value respecte l'algorithme de Luhn ("module 10") pour les numéros de cartes de crédits
désolé :D
http://framework.zend.com/manual/fr/zend.validate.set.html#zend.validate.set.ccnum
16 sept. 2008 à 15:56
Explications à venir
16 sept. 2008 à 15:43
Il me semble aussi que le Zend Framework propose, par défaut, un validateur pour les cartes de crédit.
Bonne continuation.
romain
16 sept. 2008 à 09:00