Home >Backend Development >PHP Tutorial >PHP implementation for verifying all types of credit card classes_PHP tutorial

PHP implementation for verifying all types of credit card classes_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:00:51916browse

php implementation is used to verify all types of credit card classes

This article mainly introduces the php implementation used to verify all types of credit card classes, and analyzes the implementation principles of credit card classes with examples. and related usage skills, which have certain reference value. Friends in need can refer to it

The example in this article describes the PHP implementation for verifying all types of credit card classes. Share it with everyone for your reference. The details are as follows:

This php class is relatively complete and can be used to verify various credit cards. It verifies the general rules of credit card numbers and also performs targeted identification of different types of credit cards.
The code accepts a credit card number and expiration date and returns TRUE if both are valid, otherwise it returns FALSE.

This plug-in accepts the following parameters:
$number represents a string of credit card numbers
$expiry Credit card expiration date, in the format of 07/12 or 0712

?

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

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

// Plug-in 32: Validate Credit Card

// This is an executable example with additional code supplied

// To obtain just the plug-ins please click on the Download link

$card = "4567 1234 5678 9101";

$exp = "06/11";

echo "Validating: $card : $exp
";

$result = PIPHP_ValidateCC($card, $exp);

if ($result != FALSE) echo "Card Validated";

else echo "Card did not validate";

function PIPHP_ValidateCC($number, $expiry)

{

// Plug-in 32: Validate Credit Card

//

// This plug-in accepts a credit card number and

// an expiry date and returns TRUE or FALSE,

// depending on whether the details pass date

// and checksum validation. The arguments required

// are:

//

// $number: Credit Card Number

// $expiry: Expiry date in the form:

// 07/12 or 0712 (for July, 2012)

$number = preg_replace('/[^d]/', '', $number);

$expiry = preg_replace('/[^d]/', '', $expiry);

$left = substr($number, 0, 4);

$cclen = strlen($number);

$chksum = 0;

// Diners Club

if (($left >= 3000) && ($left <= 3059) ||

($left >= 3600) && ($left <= 3699) ||

($left >= 3800) && ($left <= 3889))

if ($cclen != 14) return FALSE;

// JCB

if (($left >= 3088) && ($left <= 3094) ||

($left >= 3096) && ($left <= 3102) ||

($left >= 3112) && ($left <= 3120) ||

($left >= 3158) && ($left <= 3159) ||

($left >= 3337) && ($left <= 3349) ||

($left >= 3528) && ($left <= 3589))

if ($cclen != 16) return FALSE;

// American Express

elseif (($left >= 3400) && ($left <= 3499) ||

($left >= 3700) && ($left <= 3799))

if ($cclen != 15) return FALSE;

// Carte Blanche

elseif (($left >= 3890) && ($left <= 3899))

if ($cclen != 14) return FALSE;

// Visa

elseif (($left >= 4000) && ($left <= 4999))

if ($cclen != 13 && $cclen != 16) return FALSE;

// MasterCard

elseif (($left >= 5100) && ($left <= 5599))

if ($cclen != 16) return FALSE;

// Australian BankCard

elseif ($left == 5610)

if ($cclen != 16) return FALSE;

// Discover

elseif ($left == 6011)

if ($cclen != 16) return FALSE;

// Unknown

else return FALSE;

for ($j = 1 - ($cclen % 2); $j < $cclen; $j = 2)

$chksum = substr($number, $j, 1);

for ($j = $cclen % 2; $j < $cclen; $j = 2)

{

$d = substr($number, $j, 1) * 2;

$chksum = $d < 10 ? $d : $d - 9;

}

if ($chksum % 10 != 0) return FALSE;

if (mktime(0, 0, 0, substr($expiry, 0, 2), date("t"),

substr($expiry, 2, 2)) < time()) return FALSE;

return TRUE;

}

?>

希望本文所述对大家的php程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/973109.htmlTechArticlephp实现用于验证所有类型的信用卡类 这篇文章主要介绍了php实现用于验证所有类型的信用卡类,实例分析了信用卡类的实现原理与相关使用...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn