X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-CreditCard.git;a=blobdiff_plain;f=CreditCard.pm;h=df40315c556097d7b0476b27800df8341bb9e906;hp=4993f4e285743de174cac5b9c8726614814d266b;hb=9a22a62a72ad936158c3a52bb618f7d8a8f72936;hpb=9421e4d70c0fe52bd98366365d38a9b7bf8f982c diff --git a/CreditCard.pm b/CreditCard.pm index 4993f4e..df40315 100644 --- a/CreditCard.pm +++ b/CreditCard.pm @@ -219,7 +219,7 @@ sub cardtype { sub generate_last_digit { my ($number) = @_; - #XXX doesn't work for Isracard, should die + die "invalid operation" if length($number) == 8 || length($number) == 9; my ($i, $sum, $weight); @@ -242,8 +242,14 @@ sub validate { $number =~ s/\D//g; - return 1 if $number =~ /^[\dx]{8,9}$/; #XXX Isracard does not use LUHN, - # validation not yet implemented + if ( $number =~ /^[\dx]{8,9}$/ ) { # Isracard + $number = "0$number" if length($number) == 8; + for($i=1;$i= 13 && 0+$number;