Ivan Kohler > Business-CreditCard-0.28 > Business::CreditCard

Download:
Business-CreditCard-0.28.tar.gz

Dependencies

Annotate this POD

Related Modules

Regexp::Common
Test::Pod
Date::Parse
Mail::Address
XML::Parser
Mail::Sendmail
Test::More
Test::Harness
Authen::PIN
Date::Calc
more...
By perlmonks.org

CPAN RT

New  1
Open  1
View Bugs
Report a bug
Module Version: 0.28   Source   Latest Release: Business-CreditCard-0.30

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. 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. validate(5276440065421319).

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.