Re: Credit Card Class...how do u access?
| From: | elias | Date: | Fri, 20 Apr 2001 20:13:53 +0000 |
| Subject: | Re: Credit Card Class...how do u access? | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-49535@lists.php.net to get a copy of this message | ||
do like:
if (credit_card::validate("123412341234"))
{
// yes correct...
} else
{
// no not correct..
}
I believe this class is from WeberDev and I believe it comes with lots of
comments showing how it works...
-elias
http://www.kameelah.org/eassoft
"Dhaval Desai" <dhaval_adams@yahoo.com> wrote in message
news:20010420083447.41993.qmail@web10007.mail.yahoo.com...
> Hi!
>
> I have the following class for checking a credit card
> type.Can anybody tell me how do I access this class. I
> mean how should I check a credit card type using this
> class..?
>
> Thank you
> DHaval Desai
>
> <?php
>
>
> class credit_card
> {
> function clean_no ($cc_no)
> {
> // Remove non-numeric characters from $cc_no
> return ereg_replace ('[^0-9]+', '', $cc_no);
> }
>
> function identify ($cc_no)
> {
> $cc_no = credit_card::clean_no ($cc_no);
>
> // Get card type based on prefix and length of
> card number
> if (ereg ('^4(.{12}|.{15})$', $cc_no))
> return 'Visa';
> if (ereg ('^5[1-5].{14}$', $cc_no))
> return 'Mastercard';
> if (ereg ('^3[47].{13}$', $cc_no))
> return 'American Express';
> if (ereg ('^3(0[0-5].{11}|[68].{12})$',
> $cc_no))
> return 'Diners Club/Carte Blanche';
> if (ereg ('^6011.{12}$', $cc_no))
> return 'Discover Card';
> if (ereg ('^(3.{15}|(2131|1800).{11})$',
> $cc_no))
> return 'JCB';
> if (ereg ('^2(014|149).{11})$', $cc_no))
> return 'enRoute';
>
> return 'unknown';
> }
>
> function validate ($cc_no)
> {
> // Reverse and clean the number
> $cc_no = strrev (credit_card::clean_no
> ($cc_no));
>
> // VALIDATION ALGORITHM
> // Loop through the number one digit at a time
>
> // Double the value of every second digit
> (starting from the right)
> // Concatenate the new values with the
> unaffected digits
> for ($ndx = 0; $ndx < strlen ($cc_no); ++$ndx)
>
> $digits .= ($ndx % 2) ? $cc_no[$ndx] * 2 :
> $cc_no[$ndx];
>
> // Add all of the single digits together
> for ($ndx = 0; $ndx < strlen ($digits);
> ++$ndx)
> $sum += $digits[$ndx];
>
> // Valid card numbers will be transformed into
> a multiple of 10
> return ($sum % 10) ? FALSE : TRUE;
> }
>
> function check ($cc_no)
> {
> $valid = credit_card::validate ($cc_no);
> $type = credit_card::identify ($cc_no);
> return array ($valid, $type, 'valid' =>
> $valid, 'type' => $type);
> }
> }
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Auctions - buy the things you want at great prices
> http://auctions.yahoo.com/
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, e-mail: php-general-unsubscribe@lists.php.net
> For additional commands, e-mail: php-general-help@lists.php.net
> To contact the list administrators, e-mail: php-list-admin@lists.php.net
>