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: u2-users@listserver.u2ug.org
Subject: [U2] Mod10 Credit Card Checksum

Say, has anyone written some code to validate a Credit Card number,
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to