Baker,
This is pretty old code and it was taken out of production last January,
However, it was working at the point we stopped using it. Sorry,
there's not much documentation, but I seem to recall that it used the
MOD10 method.
Give it a try and see what happens.
Mick
Mick Gahan
Director, MIS
Metropolitan Community College
Omaha, NE
(402) 457-2402
SUBROUTINE CCP.CHECK.DIGIT(VALID,CARD.NO)
**CARD.NO = '5286309653523638'
* Last updated by ACTIVE (GAHAN) at 16:39:34 on 08/26/1993.
TEMP.CARD.NO = CARD.NO
CONVERT ' ' TO '' IN TEMP.CARD.NO
CONVERT '-' TO '' IN TEMP.CARD.NO
IF NOT(NUM(TEMP.CARD.NO)) THEN VALID = 0 ; RETURN
IF MOD(LEN(TEMP.CARD.NO),2) # 0 THEN
PROGRESSION = '1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1'
END ELSE
PROGRESSION = '2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2'
END
CONVERT ',' TO @FM IN PROGRESSION
LAST.DIGIT = TEMP.CARD.NO[1]
TEMP.CARD.NO = TEMP.CARD.NO[1,LEN(TEMP.CARD.NO)-1]
PRODUCT = ''
TEMP.CARD.NO.LENGTH = LEN(TEMP.CARD.NO)
FOR IDX = 1 TO TEMP.CARD.NO.LENGTH
TEMP = TEMP.CARD.NO[IDX,1] * PROGRESSION<IDX>
TEMP = TEMP[1,1] + TEMP[2,1]
PRODUCT<IDX> = TEMP
NEXT IDX
SUM.RESULTS = SUM(PRODUCT)
IF SUM.RESULTS[1] = 0 THEN
CHECK.DIGIT = 0
END ELSE
CHECK.DIGIT = 10 - SUM.RESULTS[1]
END
IF LAST.DIGIT # CHECK.DIGIT THEN
VALID = 0
END ELSE
VALID = 1
END
RETURN
END
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes
Sent: Friday, December 02, 2005 10:11 AM
To: [email protected]
Subject: [U2] Mod10 Credit Card Checksum
Say, has anyone written some code to validate a Credit Card number,
using the Mod10 (nicknamed) or ANSI X4.13 (realname) LUHN formula? I
was just told today get this installed yesterday, so I'm naturally
looking to see if some kind-hearted fellow MV'ver has something already
written (it is the season for giving ;-) ).
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/