summaryrefslogtreecommitdiff
path: root/misc/p5-Business-CreditCard/DESCR
blob: 3b37a222d18c4d01d48fe824fde160cc6984b8ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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://work.media.mit.edu/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).