SUBROUTINE CC.VALID(CCN,OK,CTYPE)
*
OK=0 ; WGT=2 ; SUM=0 ; CCLEN=LEN(CCN)
DIGIT=0 ; CTYPE=""
CHK.DIGIT=CCN[CCLEN,1] ; MDIGIT=0
FOR X = CCLEN - 1 TO 1 STEP -1
CC.D=CCN[X,1]
IF NOT(NUM(CC.D)) THEN CC.D=-9
DIGIT=WGT * CC.D
SUM=SUM + INT(DIGIT / 10) + MOD(DIGIT,10)
IF WGT = 2 THEN
WGT = 1
END ELSE
WGT = 2
END
NEXT X
MDIGIT=(10-MOD(SUM,10))
MDIGIT2=MOD(MDIGIT,10)
IF MDIGIT2 # CHK.DIGIT THEN
OK=0
CTYPE="Invalid Credit Card Number"
END ELSE
BEGIN CASE
CASE CCN[1,1]="4" AND (CCLEN=13 OR CCLEN=16)
CTYPE="V"
CASE CCN[1,2]="51" AND CCLEN=16
CTYPE="M"
CASE CCN[1,2]="52" AND CCLEN=16
CTYPE="M"
CASE CCN[1,2]="53" AND CCLEN=16
CTYPE="M"
CASE CCN[1,2]="54" AND CCLEN=16
CTYPE="M"
CASE CCN[1,2]="55" AND CCLEN=16
CTYPE="M"
CASE CCN[1,4]="6011" AND CCLEN=16
CTYPE="D"
CASE CCN[1,2]="37" AND CCLEN=15
CTYPE="AX"
CASE CCN[1,2]="34" AND CCLEN=15
CTYPE="AX"
CASE CCN[1,3]="389" AND CCLEN=14
CTYPE="CB"
CASE CCN[1,2]="94" AND CCLEN=14
CTYPE="CB"
CASE CCN[1,2]="95" AND CCLEN=14
CTYPE="CB"
CASE CCN[1,2]="30" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,2]="36" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="381" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="382" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="383" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="384" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="385" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="386" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="387" AND CCLEN=14
CTYPE="DC"
CASE CCN[1,3]="388" AND CCLEN=14
CTYPE="DC"
CASE 1
CTYPE=""
END CASE
IF CTYPE = "" THEN
OK=0
CTYPE = "Invalid Credit Card Type"
END ELSE
OK=1
CTYPE=OCONV(CTYPE,"TPAY.TYP;X;;0")
IF CTYPE = "" THEN
OK=0
CTYPE = "Credit Card Type not Accepted"
END
END
END
*
RETURN
James F Thompson
Senior System Analyst
Cypress Business Solutions
678.494.9353 x1410
[EMAIL PROTECTED]
www.cypressesolutions.com
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes
Sent: Friday, December 02, 2005 11:11 AM
To: [email protected]
Subject: [U2] Mod10 Credit Card Checksum
Say, has anyone written some code to validate a Credit Card number,
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/