Fix Discover identification of 39 and 3529-3589 prefixes, patch from Jason Terry...
authorIvan Kohler <ivan@freeside.biz>
Fri, 22 Feb 2013 00:11:23 +0000 (16:11 -0800)
committerIvan Kohler <ivan@freeside.biz>
Fri, 22 Feb 2013 00:11:23 +0000 (16:11 -0800)
Changes
CreditCard.pm

diff --git a/Changes b/Changes
index 0d352a7..a63119e 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,11 +1,13 @@
 Revision history for Perl extension Business::CreditCard.
 
-0.32  unreleased
+0.32  Thu Feb 21 16:02:42 PST 2013
         - Add Israeli Isracard (no checksum yet)
         - Add LICENSE=>perl to Makefile.PL; add license to META.yml,
           closes: cpan #27735
         - Documentation: Add link to Neil Bowers' review of CC check modules
         - Rearrange cardtype() for performance
+        - Fix Discover identification of 39 and 3529-3589 prefixes, patch from
+          Jason Terry, thanks!
 
 0.31  Mon Oct 19 18:51:35 PDT 2009
         - Add LICENSE section to POD documentation
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