首页 | 免费域名 | 个人服务器 | 一流信息监控拦截系统 | 虚拟主机知识库 | ASP 空间 | ASP技术大全 | 下载中心 | 客户服务中心
  7i24 > ASP技术大全 > 代码乐园 >
    7i24 .Com  
  ASP商场源程序

7i24.Com不停为您服务
ASP商场源程序

<%
' ASP Emporium: Free ASP Source Code by Bill Gearhart
' http://www.aspEmporium.com/

' Downloaded On: 5/12/00
' Original File Name: CC_verification.asp
' Original File Location:
http://www.aspEmporium.com/aspEmporium/examples/CC_verification.asp

' This code is provided as is with no support and no guarantees.
' You can view the license for this source code at the following
address:
' http://www.aspEmporium.com/aspEmporium/help/license.asp

' Most files require a global.asa and the myData.mdb MS Access
' developmental database, both of which can be downloaded from the
ASP Emporium.

' Enjoy,
' Bill Gearhart
%>

<%
Option Explicit
Response.Buffer = True


Function VerifyCreditCardNumber(strCardType, strCCNumber, dExpDate)
' This function verifies the accuracy of an inputted
credit card number.
' IT DOES NOT VALIDATE OR IN ANY WAY PROCESS A CREDIT CARD
NUMBER!
' What it does do is check the prefix and length of a card
number
' against strict standards published by the credit card
companies themselves.

' This function is based in part on information from the
following site:
' http://www.beachnet.com/~hstiles/cardtype.html

' This function returns True if the credit card appears to
be valid
' based on the standards discussed at the above site. Or
returns False
' if the credit card number appears to be invalid. If a
credit card company
' modifies this information, this function becomes null
and should not
' be used until updated. You probably shouldn't use it
without modifications
' anyways.....

Dim strCCFirstFour, RequiredDigits, strCCFirstTwo, i,
bBadDigits, strCCFirstThree
Dim iRequiredLength, bNumberVerified, bVisaPresent,
AbsoluteCCExpirationDate
Dim TodaysDate, dMonth, dYear

' First, grab the input and run a couple of tests....

' we need to have a cc # with no spaces or foreign
characters like -
' In other words, an uninterrupted number would be nice
before we go on.

' force string value so we don't lose any numbers
strCCNumber = CSTR(strCCNumber)
' dump any spaces
strCCNumber = replace(strCCNumber, " ", "")
' get rid of any -'s
strCCNumber = replace(strCCNumber, "-", "")

' good enough.
' now let's check if we made a number.
' if not, get em out...
if isNumeric(strCCNumber) = False Then
VerifyCreditCardNumber = False
Exit Function
end if

' now we have an uninterrupted number to work with

' To verify, we need the credit card type
strCardType = CINT(strCardType)

' each credit card has distinct patterns that are found
' in the first 4 numbers

' let's grab the first 4 digits of the cc #
strCCFirstFour = Left(strCCNumber, 4)

Select Case strCardType
Case 1 ' mastercard
' make array of required numbers
RequiredDigits = Array
("51", "52", "53", "54", "55")
strCCFirstTwo = Left(strCCFirstFour, 2)
For i = 0 to Ubound(RequiredDigits)
if CSTR(RequiredDigits(i)) = CSTR
(strCCFirstTwo) then
bBadDigits = False
Exit For
else
bBadDigits = True
end if
Next

Case 2 ' visa
RequiredDigits = 4
if CSTR(RequiredDigits) = CSTR(Left
(strCCFirstFour, 1)) then
bBadDigits = False
else
bBadDigits = True
end if

Case 3 ' american express
RequiredDigits = Array("34", "37")
strCCFirstTwo = Left(strCCFirstFour, 2)
For i = 0 to Ubound(RequiredDigits)
if CSTR(RequiredDigits(i)) = CSTR
(strCCFirstTwo) then
bBadDigits = False
Exit For
else
bBadDigits = True
end if
Next

Case 4 ' Diner's Club, Carte Blanche
RequiredDigits = Array
("300", "301", "302", "303", "304", "305", "36", "38")
strCCFirstThree = Left(strCCFirstFour, 3)
For i = 0 to 5
if CSTR(RequiredDigits(i)) = CSTR
(strCCFirstThree) then
bBadDigits = False
Exit For
else
bBadDigits = True
end if
Next
If bBadDigits = True then
strCCFirstTwo = Left
(strCCFirstFour, 2)
For i = 6 to Ubound
(RequiredDigits)
if CSTR(RequiredDigits
(i)) = CSTR(strCCFirstTwo) then
bBadDigits =
False
Exit For
else
bBadDigits =
True
end if
Next
End If

Case 5 ' Discover
RequiredDigits = 6011
if CSTR(RequiredDigits) = CSTR
(strCCFirstFour) then
bBadDigits = False
else
bBadDigits = True
end if

Case 6 ' enRoute
RequiredDigits = Array("2014", "2149")
For i = 0 to Ubound(RequiredDigits)
if CSTR(RequiredDigits(i)) = CSTR
(strCCFirstFour) then
bBadDigits = False
Exit For
else
bBadDigits = True
end if
Next

Case 7 ' JCB
RequiredDigits = Array
("3", "2131", "1800")
if CSTR(Left(strCCFirstFour, 1)) = CSTR
(RequiredDigits(0)) then
bBadDigits = False
else
For i = 1 to Ubound
(RequiredDigits)
if CSTR(RequiredDigits
(i)) = CSTR(strCCFirstFour) then
bBadDigits =
False
Exit For
else
bBadDigits =
True
end if
Next
end if

Case Else ' Unknown CC Type or unentered by client
bBadDigits = True

End Select

' if the 1st few card numbers are invalid for that card
type,
' remove the client and stop processing ....

if bBadDigits Then
VerifyCreditCardNumber = False
Exit Function
end if

' now we're almost as far as I'm prepared to go...
' Each credit card also has a set amount of numbers that
make
' up a valid account number. For this one we need the cc
type again

bVisaPresent = False

Select Case strCardType
Case 1 ' mastercard
iRequiredLength = 16

Case 2 ' visa
bVisaPresent = True
if Int(Len(strCCNumber)) = Int(16) _
OR Int(Len(strCCNumber)) = Int(13) then
bNumberVerified = True
else
VerifyCreditCardNumber = False
Exit Function
end if

Case 3 ' American Express
iRequiredLength = 15

Case 4 ' Diner's club/carte blanche
iRequiredLength = 14

Case 5 ' Discover
iRequiredLength = 16

Case 6 ' enRoute
iRequiredLength = 15

Case 7 ' JCB
if Int(Left(strCCNumber,1)) = Int(3) then
iRequiredLength = 16
else
iRequiredLength = 15
end if

Case Else ' Unknown CC Type or unentered by client

VerifyCreditCardNumber = False
Exit Function

End Select

if bVisaPresent = False then
if Int(Len(strCCNumber)) = Int(iRequiredLength)
then
bNumberVerified = True
else
bNumberVerified = False
end if
end if

if bNumberVerified = False then
VerifyCreditCardNumber = False
Exit Function
end if

' if a client makes it this far, the credit card number is
good enough
' to send through the system for processing.
' But, let's check the expiration date first.

' The expiration date is always a month and a year
' so let's parse the input:

dExpDate = Trim(dExpDate)

if instr(dExpDate,"/") Then
AbsoluteCCExpirationDate = Split(dExpDate, "/")
elseif instr(dExpDate,"-") Then
AbsoluteCCExpirationDate = Split(dExpDate, "-")
elseif instr(dExpDate," ") Then
AbsoluteCCExpirationDate = Split(dExpDate, " ")
else
VerifyCreditCardNumber = False
Exit Function
end if

' if this system works correctly, we should have an array
with 2 entries:
' AbsoluteCCExpirationDate(0) = expiration month
' AbsoluteCCExpirationDate(1) = expiration year

if Ubound(AbsoluteCCExpirationDate) > 1 then
VerifyCreditCardNumber = False
Exit Function
end if

TodaysDate = split(formatdatetime(date(),2), "/")

dMonth = Int(TodaysDate(0))
dYear = Int(TodaysDate(2))

if Int(dYear) = Int(AbsoluteCCExpirationDate(1)) then
' if the year is the same as this year, check the
month
if Int(dMonth) > Int(AbsoluteCCExpirationDate(0))
then
VerifyCreditCardNumber = False
Exit Function
else
VerifyCreditCardNumber = True
Exit Function
end if
else
' otherwise just check the year
if Int(dYear) > Int(AbsoluteCCExpirationDate(1))
then
VerifyCreditCardNumber = False
Exit Function
else
VerifyCreditCardNumber = True
Exit Function
end if
end if
End Function
%>




<html>
<head>
<title>The ASP Emporium - Simple Credit Card Verification</title>
<style type="text/css">
h3 {color:#CC3300;}
</style>
</head>
<body bgcolor=#EEEEEE text=#000000
background="https://secure.sitehosting.net/euphoriatech/bg.gif">

<h3>Simple Credit Card Verification</h3>

<table width="40%" cellpadding=4 cellspacing=2 border=0 style="font-
family:helvetica, MS Sans Serif;font-size:10pt;">
<tr><td><A HREF="./viewSecureSource.asp?
source=CC_verification.asp">VIEW<BR>ASP SOURCE</A></td>
<td align=right><A HREF="./downloadSecureSource.asp?
eg=CC_verification.asp">DOWNLOAD<BR>ASP SOURCE</A></td></tr>
</table>

<form action="./CC_verification.asp" method=post>
<table>
<tr>
<td>Credit Card Type: </td>
<td><select name="cc_type">
<option value="1">Mastercard</option>
<option value="2">Visa</option>
<option value="3">American
Express</option>
<option value="4">Diner's Club</option>
<option value="4">Carte Blanche</option>
<option value="5">Discover</option>
<option value="6">enRoute</option>
<option value="7">JCB</option>
</select></td>
</tr>
<tr> <td>Credit Card Number: </td>
<td><input type=text name="cc_num" value=""
size=20></td>
</tr>
<tr>
<td>Expiration Date: mm/yy</td>
<td><input type=text name="cc_exp" value=""
size=5></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit
value="perform verification"></td>
</tr>
</table>
</form>


<%
Dim bVerificationResults, x1, x2, x3

' credit card type form input
x1 = CINT(request("cc_type"))

' credit card number form input
x2 = CSTR(request("cc_num"))

' credit card expiration date form input
x3 = CSTR(request("cc_exp"))

If Not x1 = "" AND Not x2 = "" AND Not x3 = "" then
bVerificationResults = VerifyCreditCardNumber(x1, x2, x3)

If bVerificationResults then
Response.Write "<P>This Card Appears To Be Valid!
</P>"
Else
Response.Write "<P>This Card Failed The Initial
Verification Process!</P>"
End If
End If
%>

</body>
</html>


  2002年1月9日  阅读 1621 次  发送此页给朋友  来源:    版权争议  删除

相关文章:   近期热点:

上一篇: 一个简单的购物篮源代码
下一篇: 同时订购多样物品的源程序
返回上一层...
搜索:

(C)2004-2022 7i24.Com 保留所有权利