man Business::CreditCard () - Validate/generate credit card checksums/names

NAME

CWBusiness::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. My list is not complete; I welcome additions.

Possible return values are:

  VISA card
  MasterCard
  Discover card
  American Express card
  Diner's Club/Carte Blanche
  enRoute
  JCB
  BankCard
  Switch
  Solo
  Unknown

Not a credit card is returned on obviously invalid data values.

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. CWvalidate(5).

AUTHOR

Jon Orwant

The Perl Journal and MIT Media Lab

orwant@tpj.com

Current maintainer is Ivan Kohler <ivan-business-creditcard@420.am>. Please don't bother Jon with emails about this module.

Lee Lawrence <LeeL@aspin.co.uk>, Neale Banks <neale@lowendale.com.au> and Max Becker <Max.Becker@firstgate.com> contributed support for additional card types. Lee also contributed a working test.pl.