From 15a3d82b29c847ad0a3b4a74291b162a3c0477a1 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Thu, 21 Feb 2013 16:11:23 -0800 Subject: [PATCH] Fix Discover identification of 39 and 3529-3589 prefixes, patch from Jason Terry. also, 0.32 --- Changes | 4 +++- CreditCard.pm | 11 ++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Changes b/Changes index 0d352a7..a63119e 100644 --- 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 diff --git a/CreditCard.pm b/CreditCard.pm index d0dd3b8..c8dd6de 100644 --- a/CreditCard.pm +++ b/CreditCard.pm @@ -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 , Neale Banks and Max Becker contributed support for additional card types. Lee also contributed a working test.pl. Alexandr Ciornii - contributed code cleanups. + contributed code cleanups. Jason Terry + 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 -- 2.11.0