NAME
Business::CreditCard
- Validate/generate credit card checksums/names
SYNOPSIS
use Business::CreditCard;
print validate("5276 4400 6542 1319");
print cardtype("5276 4400 6542 1319");
print generate_last_digit("5276 4400 6542 131");
Business::CreditCard is available at a CPAN site near you.
DESCRIPTION
These subroutines tell you whether a credit card number is self-consistent -- whether the last digit of the number is a valid checksum for the preceding digits.
The validate() subroutine returns 1 if the card number provided passes the checksum test, and 0 otherwise.
The cardtype() subroutine returns a string containing the type of card: "MasterCard", "VISA", and so on. My list is not complete; I welcome additions.
The generate_last_digit() subroutine computes and returns the last digit of the card given the preceding digits. With a 16-digit card, you provide the first 15 digits; the subroutine returns the sixteenth.
This module does not tell you whether the number is on an actual card, only whether it might conceivably be on a real card. To verify whether a card is real, or whether it's been stolen, or what its balance is, you need a Merchant ID, which gives you access to credit card databases. The Perl Journal (http://tpj.com/tpj) has a Merchant ID so that I can accept MasterCard and VISA payments; it comes with the little pushbutton/slide-your-card-through device you've seen in restaurants and stores. That device calculates the checksum for you, so I don't actually use this module.
These subroutines will also work if you provide the arguments as numbers instead of strings, e.g. validate(5276440065421319)
.
To install this module, change directories to wherever your system keeps Perl modules (e.g. /usr/local/lib/perl5
) and create a Business
directory if there's isn't one already. Then copy this file there. That's it!
AUTHOR
Jon Orwant
The Perl Journal and MIT Media Lab
orwant@tpj.com