Fix Discover identification of 39 and 3529-3589 prefixes, patch from Jason Terry...
[Business-CreditCard.git] / CreditCard.pm
index d0dd3b8..c8dd6de 100644 (file)
@@ -5,7 +5,7 @@ use vars qw( @ISA $VERSION $Country );
 
 @ISA = qw( Exporter );
 
-$VERSION = "0.32_01";
+$VERSION = "0.32";
 
 $Country = 'US';
 
@@ -125,13 +125,14 @@ Please don't bother Jon with emails about this module.
 Lee Lawrence <LeeL@aspin.co.uk>, Neale Banks <neale@lowendale.com.au> and
 Max Becker <Max.Becker@firstgate.com> contributed support for additional card
 types.  Lee also contributed a working test.pl.  Alexandr Ciornii
-<alexchorny@gmail.com> contributed code cleanups.
+<alexchorny@gmail.com> contributed code cleanups.  Jason Terry
+<jterry@bluhost.com> contributed updates for Discover BIN ranges.
 
 =head1 COPYRIGHT AND LICENSE
 
 Copyright (C) 1995,1996,1997 Jon Orwant
 Copyright (C) 2001-2006 Ivan Kohler
-Copyright (C) 2007-2012 Freeside Internet Services, Inc.
+Copyright (C) 2007-2013 Freeside Internet Services, Inc.
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.8.8 or,
@@ -201,12 +202,12 @@ sub cardtype {
     return "Discover card"
       if   $number =~ /^30[0-5][\dx]{11}([\dx]{2})?$/o  #diner's: 300-305
       ||   $number =~ /^3095[\dx]{10}([\dx]{2})?$/o     #diner's: 3095
-      ||   $number =~ /^3[68][\dx]{12}([\dx]{2})?$/o    #diner's: 36
+      ||   $number =~ /^3[689][\dx]{12}([\dx]{2})?$/o   #diner's: 36 38 and 39
       ||   $number =~ /^6011[\dx]{12}$/o
       ||   $number =~ /^64[4-9][\dx]{13}$/o
       ||   $number =~ /^65[\dx]{14}$/o
       || ( $number =~ /^62[24-68][\dx]{13}$/o && uc($Country) ne 'CN' ) #CUP
-      || ( $number =~ /^35(2[89]|[3-8][\dx])[\dx]{10}$/o && uc($Country) eq 'US' );
+      || ( $number =~ /^35(2[89]|[3-8][\dx])[\dx]{12}$/o && uc($Country) eq 'US' );
 
     return "Switch"
       if $number =~ /^49(03(0[2-9]|3[5-9])|11(0[1-2]|7[4-9]|8[1-2])|36[0-9]{2})[\dx]{10}([\dx]{2,3})?$/o