NAME
Data::Transpose::Validator::CreditCard - Validator for CC numbers
SYNOPSIS
From inside Data::Transpose::Validator
$dtv->prepare(
cc_number => {
validator => {
class => 'CreditCard',
options => {
types => [ "visa card",
"mastercard",
"American Express card",
"Discover card" ],
country => 'DE',
},
},
required => 1,
},
cc_month => {
validator => {
class => 'NumericRange',
options => {
min => 1,
max => 12,
},
},
required => 1,
},
cc_year => {
validator => {
class => 'NumericRange',
options => {
min => 2013,
max => 2023,
},
},
required => 1,
}
);
my $form = {
cc_number => ' 4111111111111111 ',
cc_month => '12',
cc_year => '2014',
};
my $clean = $dtv->transpose($form);
ok($clean, "validation ok");
Or, as stand-alone module:
my $v = Data::Transpose::Validator::CreditCard->new(country => 'DE',
types => ["visa card",
"mastercard"]);
ok($v->is_valid("4111111111111111"));
ok(!$v->is_valid("4111111111111112"));
DESCRIPTION
This module wraps Business::CreditCard to validate a credit card number.
new(country => 'de', types => ['VISA card', 'MasterCard', ... ])
Constructor. The options as the following:
- country
-
Two letters country code (for card type detection purposes). Defaults to "US" (as per Business::CreditCard defaults).
- types
-
List of accepted CC type. The string is case insensitive, but must match the following recognized types. It's unclear how much reliable is this, so use with caution. Recognized types:
American Express card BankCard China Union Pay Discover card Isracard JCB Laser MasterCard Solo Switch VISA card
is_valid
Check with ref
if the argument is a valid credit card and return it on success (without whitespace).
test_cc_numbers
For testing (and validation) purposes, this method returns an hashref with the test credit card numbers for each provider (as listed by Business::CreditCard::cardtype()).