|
C - Validate/generate credit card checksums/names
|
Business::CreditCard - Validate/generate credit card checksums/names
This module is not included with the standard ActivePerl distribution. It is available as a separate download using PPM.
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.
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!
Jon Orwant
The Perl Journal and MIT Media Lab
orwant@tpj.com
|
C - Validate/generate credit card checksums/names
|
|