C |
Business::CreditCard
- Validate/generate credit card checksums/names
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
C |