[COOKBOOK] CreditCard validation
Skip Kimpel
skiplondon at gmail.com
Mon Oct 21 06:20:49 EDT 2013
Thanks Hugh!
> On Oct 21, 2013, at 3:50 AM, "FlexibleLearning.com" <admin at FlexibleLearning.com> wrote:
>
> ccValidate
> -- Given a credit card number, get the card type and if it is a valid
> number.
> -- It does not check if the card is stolen, has expired or is otherwise
> suspect.
>
>
> on closeField
> ccValidate me,CardType,Validity
> answer CardType &cr& Validity
> end closeField
>
> on ccValidate pNum, at CardType, at Validity
> replace space with "" in pNum
> replace "-" with "" in pNum
> if (pNum is NOT a number) then
> put "Not a card number" into CardType
> put "Unable to validate" into Validity
> else
> --| Card identification by regex...
> local isVisa ="^(?:4[0-9]{12}(?:[0-9]{3})?)$"
> local isMasterCard= "^(?:5[1-5][0-9]{14})$"
> local isDiscover ="^(?:6(?:011|5[0-9][0-9])[0-9]{12})$"
> local isAMEX ="^(?:3[47][0-9]{13})$"
> local isDinersClub ="^(?:3(?:0[0-5]|[68][0-9])[0-9]{11})$"
> local isJCB ="^(?:(?:2131|1800|35\d{3})\d{11})$"
> if matchText(pNum,isVisa) then put "VISA" into CardType
> else if matchText(pNum,isMasterCard) then put "MASTERCARD" into CardType
> else if matchText(pNum,isDiscover) then put "DISCOVER" into CardType
> else if matchText(pNum,isAMEX) then put "AMERICANEXPRESS" into CardType
> else if matchText(pNum,isDinersClub) then put "DINERSCLUB" into CardType
> else if matchText(pNum,isJCB) then put "JCB" into CardType
> else put "UNKNOWN CARD TYPE" into CardType
> --| Checksum verification by Luhn algorithm...
> put len(pNum) into tLen
> repeat with z = 1 to tLen
> put char -z of pNum into n
> if z mod 2 =0 then
> put n*2 into n
> if n <10 then add n to stdout
> else add (n mod 10) +1 to stdout
> else
> add n to stdout
> end if
> end repeat
> if (stdout mod 10 =0) then put "valid card number" into Validity
> else put "invalid card number" into Validity
> end if
> end ccValidate
>
>
> by Hugh Senior
> FLCo
>
>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list