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/

Reply via email to