Jake,
Here is the Witango version you can plug into a page. I t works for Visa,MC,and Amex only.
<@comment>Verify Credit card numbers BEFORE theyare sent to the payment gateway
        V-Visa,M-MAsterCard,X_American Express  
        INPUT :<@ARG CCNumber> (the credit card number)
                        :<@ARG CCBrand> (the credit card brand)
        Output :        IF @@local$Invalid_Credit_Card_Number=1 Your Card number is invalid
</@Comment>
<@ASSIGN NAME="num" VALUE="<@KEEP STR='<@ARG CCNumber>' CHARS='0123456789'>" Scope=LOCAL>


<@IF "'@@num'='0'">
        <@ASSIGN NAME="precheck" VALUE="bad" Scope=LOCAL>
<@ELSE>
        <@ASSIGN NAME="precheck" VALUE="good" Scope=LOCAL>
</@IF>
<@IF "'<@ARG CCBrand>'='V'">
        <@IF "'<@LENGTH STR=@@num>'='16'">
                <@ASSIGN NAME="precheck" VALUE="good" Scope=LOCAL>
        <@ELSEIF "'<@LENGTH STR=@@num>'='13'">
                <@ASSIGN NAME="precheck" VALUE="good" Scope=LOCAL>
        <@ELSE>
                <@ASSIGN NAME="precheck" VALUE="bad" Scope=LOCAL>
        </@IF>
<@ELSEIF "'<@ARG CCBrand>'='M'">
        <@IF "'<@LENGTH STR=@@num>'='16'">
                <@ASSIGN NAME="precheck" VALUE="good" Scope=LOCAL>
        <@ELSE>
                <@ASSIGN NAME="precheck" VALUE="bad" Scope=LOCAL>
        </@IF>
<@ELSEIF "'<@ARG CCBrand>'='X'">
        <@IF "'<@LENGTH STR=@@num>'='15'">
                <@ASSIGN NAME="precheck" VALUE="good" Scope=LOCAL>
        <@ELSE>
                <@ASSIGN NAME="precheck" VALUE="bad" Scope=LOCAL>
        </@IF>
</@IF>

<@IF "'@@precheck'='good'">
        <@ASSIGN NAME="numLen" VALUE="<@LENGTH STR='@@num'>" Scope=LOCAL>
        <@ASSIGN NAME="lastChar" VALUE="<@SUBSTRING STR='@@num' START='@@numLen' NUMCHARS='1'>" Scope=LOCAL>
        <@ASSIGN NAME="checksum" VALUE="0" Scope=LOCAL>
        <@ASSIGN NAME="num" VALUE="<@SUBSTRING STR='@@num' START='<@CALC EXPR="1">' NUMCHARS='@@numLen-1'>" Scope=LOCAL>
        <@ASSIGN NAME="numLen" VALUE="<@CALC EXPR='@@numLen-1'>" Scope=LOCAL>

        <@FOR START=1 STOP=@@numLen>
        <@ASSIGN NAME="digit"
                                 VALUE="<@SUBSTRING STR='@@num'
                                                                    START='<@CALC EXPR="@@numLen-<@CURROW>+1">' NUMCHARS='1'>"
                                 Scope=LOCAL>
        <@ASSIGN NAME="temp" VALUE="<@CALC EXPR='@@digit*(1+(<@CURROW>%2))'>" Scope=LOCAL>
        <@IF "'@@temp'<'10'">
                <@ASSIGN NAME="checksum" VALUE="<@CALC EXPR='@@checksum+@@temp'>" Scope=LOCAL>
        <@ELSE>
                <@ASSIGN NAME="checksum" VALUE="<@CALC EXPR='@@checksum+(@@temp-9)'>" Scope=LOCAL>
        </@IF>
        </@FOR>

        <@ASSIGN NAME="checksum" VALUE="<@CALC EXPR='(10-(@@checksum%10))%10'>" Scope=LOCAL>
        <@IF "'@@lastChar'='@@checksum'">
                <@ASSIGN NAME="Invalid_Credit_Card_Number" VALUE="0" Scope=LOCAL>
        <@ELSE>
                <@ASSIGN NAME="Invalid_Credit_Card_Number" VALUE="1" Scope=LOCAL>
                <@ASSIGN Local$Error_Found 1>
        </@IF>

<@ELSE>
        <@ASSIGN NAME="Invalid_Credit_Card_Number" VALUE="1" Scope=LOCAL>
        <@ASSIGN Local$Error_Found 1>
</@IF>


Have fun!
Brian Mowers




>
> Thursday, October 10, 2002, 11:48:17 AM, Jacob Stevens wrote:
>
>> Hello Everyone,
>
>> If possible could someone please send me a link to or an example of the
>> equations used to verify the validity of different credit card numbers.
>
>> Thanks,
>
>> Jake Stevens
>
>> ________________________________________________________________________
>> TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED]
>>                 with unsubscribe witango-talk in the message body
>
>
> ________________________________________________________________________
> TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED]
>               with unsubscribe witango-talk in the message body
>

________________________________________________________________________
TO UNSUBSCRIBE: send a plain text/US ASCII email to [EMAIL PROTECTED]
                with unsubscribe witango-talk in the message body

Brian Mowers
[EMAIL PROTECTED]

Reply via email to