当前位置:首页 > ASP教程 > ASP其他

asp 一些支付接口

99bill:

1.md5.asp
代码如下:
<BR /><% <BR />''''''''' <BR />' @Description: 快钱网关接口范例 <BR />' @Copyright (c) 上海快钱信息服务有限公司 <BR />' @version 2.0 <BR />''''''''' <BR />Private Const BITS_TO_A_BYTE = 8 <BR />Private Const BYTES_TO_A_WORD = 4 <BR />Private Const BITS_TO_A_WORD = 32 <br /><br />Private m_lOnBits(30) <BR />Private m_l2Power(30) <br /><br />Private Function LShift(lValue, iShiftBits) <BR />If iShiftBits = 0 Then <BR />LShift = lValue <BR />Exit Function <BR />ElseIf iShiftBits = 31 Then <BR />If lValue And 1 Then <BR />LShift = &H80000000 <BR />Else <BR />LShift = 0 <BR />End If <BR />Exit Function <BR />ElseIf iShiftBits < 0 Or iShiftBits > 31 Then <BR />Err.Raise 6 <BR />End If <br /><br />If (lValue And m_l2Power(31 - iShiftBits)) Then <BR />LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 <BR />Else <BR />LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) <BR />End If <BR />End Function <br /><br />Private Function RShift(lValue, iShiftBits) <BR />If iShiftBits = 0 Then <BR />RShift = lValue <BR />Exit Function <BR />ElseIf iShiftBits = 31 Then <BR />If lValue And &H80000000 Then <BR />RShift = 1 <BR />Else <BR />RShift = 0 <BR />End If <BR />Exit Function <BR />ElseIf iShiftBits < 0 Or iShiftBits > 31 Then <BR />Err.Raise 6 <BR />End If <br /><br />RShift = (lValue And &H7FFFFFFE)  m_l2Power(iShiftBits) <br /><br />If (lValue And &H80000000) Then <BR />RShift = (RShift Or (&H40000000  m_l2Power(iShiftBits - 1))) <BR />End If <BR />End Function <br /><br />Private Function RotateLeft(lValue, iShiftBits) <BR />RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) <BR />End Function <br /><br />Private Function AddUnsigned(lX, lY) <BR />Dim lX4 <BR />Dim lY4 <BR />Dim lX8 <BR />Dim lY8 <BR />Dim lResult <br /><br />lX8 = lX And &H80000000 <BR />lY8 = lY And &H80000000 <BR />lX4 = lX And &H40000000 <BR />lY4 = lY And &H40000000 <br /><br />lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) <br /><br />If lX4 And lY4 Then <BR />lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 <BR />ElseIf lX4 Or lY4 Then <BR />If lResult And &H40000000 Then <BR />lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 <BR />Else <BR />lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 <BR />End If <BR />Else <BR />lResult = lResult Xor lX8 Xor lY8 <BR />End If <br /><br />AddUnsigned = lResult <BR />End Function <br /><br />Private Function md5_F(x, y, z) <BR />md5_F = (x And y) Or ((Not x) And z) <BR />End Function <br /><br />Private Function md5_G(x, y, z) <BR />md5_G = (x And z) Or (y And (Not z)) <BR />End Function <br /><br />Private Function md5_H(x, y, z) <BR />md5_H = (x Xor y Xor z) <BR />End Function <br /><br />Private Function md5_I(x, y, z) <BR />md5_I = (y Xor (x Or (Not z))) <BR />End Function <br /><br />Private Sub md5_FF(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_GG(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_HH(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_II(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Function ConvertToWordArray(sMessage) <BR />Dim lMessageLength <BR />Dim lNumberOfWords <BR />Dim lWordArray() <BR />Dim lBytePosition <BR />Dim lByteCount <BR />Dim lWordCount <br /><br />Const MODULUS_BITS = 512 <BR />Const CONGRUENT_BITS = 448 <br /><br />lMessageLength = Len(sMessage) <br /><br />lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS)  BITS_TO_A_BYTE))  (MODULUS_BITS  BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS  BITS_TO_A_WORD) <BR />ReDim lWordArray(lNumberOfWords - 1) <br /><br />lBytePosition = 0 <BR />lByteCount = 0 <BR />Do Until lByteCount >= lMessageLength <BR />lWordCount = lByteCount  BYTES_TO_A_WORD <BR />lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE <BR />lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) <BR />lByteCount = lByteCount + 1 <BR />Loop <br /><br />lWordCount = lByteCount  BYTES_TO_A_WORD <BR />lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE <br /><br />lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) <br /><br />lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) <BR />lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) <br /><br />ConvertToWordArray = lWordArray <BR />End Function <br /><br />Private Function WordToHex(lValue) <BR />Dim lByte <BR />Dim lCount <br /><br />For lCount = 0 To 3 <BR />lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) <BR />WordToHex = WordToHex & Right("0" & Hex(lByte), 2) <BR />Next <BR />End Function <br /><br />Public Function MD5(sMessage) <BR />m_lOnBits(0) = CLng(1) <BR />m_lOnBits(1) = CLng(3) <BR />m_lOnBits(2) = CLng(7) <BR />m_lOnBits(3) = CLng(15) <BR />m_lOnBits(4) = CLng(31) <BR />m_lOnBits(5) = CLng(63) <BR />m_lOnBits(6) = CLng(127) <BR />m_lOnBits(7) = CLng(255) <BR />m_lOnBits(8) = CLng(511) <BR />m_lOnBits(9) = CLng(1023) <BR />m_lOnBits(10) = CLng(2047) <BR />m_lOnBits(11) = CLng(4095) <BR />m_lOnBits(12) = CLng(8191) <BR />m_lOnBits(13) = CLng(16383) <BR />m_lOnBits(14) = CLng(32767) <BR />m_lOnBits(15) = CLng(65535) <BR />m_lOnBits(16) = CLng(131071) <BR />m_lOnBits(17) = CLng(262143) <BR />m_lOnBits(18) = CLng(524287) <BR />m_lOnBits(19) = CLng(1048575) <BR />m_lOnBits(20) = CLng(2097151) <BR />m_lOnBits(21) = CLng(4194303) <BR />m_lOnBits(22) = CLng(8388607) <BR />m_lOnBits(23) = CLng(16777215) <BR />m_lOnBits(24) = CLng(33554431) <BR />m_lOnBits(25) = CLng(67108863) <BR />m_lOnBits(26) = CLng(134217727) <BR />m_lOnBits(27) = CLng(268435455) <BR />m_lOnBits(28) = CLng(536870911) <BR />m_lOnBits(29) = CLng(1073741823) <BR />m_lOnBits(30) = CLng(2147483647) <br /><br />m_l2Power(0) = CLng(1) <BR />m_l2Power(1) = CLng(2) <BR />m_l2Power(2) = CLng(4) <BR />m_l2Power(3) = CLng(8) <BR />m_l2Power(4) = CLng(16) <BR />m_l2Power(5) = CLng(32) <BR />m_l2Power(6) = CLng(64) <BR />m_l2Power(7) = CLng(128) <BR />m_l2Power(8) = CLng(256) <BR />m_l2Power(9) = CLng(512) <BR />m_l2Power(10) = CLng(1024) <BR />m_l2Power(11) = CLng(2048) <BR />m_l2Power(12) = CLng(4096) <BR />m_l2Power(13) = CLng(8192) <BR />m_l2Power(14) = CLng(16384) <BR />m_l2Power(15) = CLng(32768) <BR />m_l2Power(16) = CLng(65536) <BR />m_l2Power(17) = CLng(131072) <BR />m_l2Power(18) = CLng(262144) <BR />m_l2Power(19) = CLng(524288) <BR />m_l2Power(20) = CLng(1048576) <BR />m_l2Power(21) = CLng(2097152) <BR />m_l2Power(22) = CLng(4194304) <BR />m_l2Power(23) = CLng(8388608) <BR />m_l2Power(24) = CLng(16777216) <BR />m_l2Power(25) = CLng(33554432) <BR />m_l2Power(26) = CLng(67108864) <BR />m_l2Power(27) = CLng(134217728) <BR />m_l2Power(28) = CLng(268435456) <BR />m_l2Power(29) = CLng(536870912) <BR />m_l2Power(30) = CLng(1073741824) <br /><br /><BR />Dim x <BR />Dim k <BR />Dim AA <BR />Dim BB <BR />Dim CC <BR />Dim DD <BR />Dim a <BR />Dim b <BR />Dim c <BR />Dim d <br /><br />Const S11 = 7 <BR />Const S12 = 12 <BR />Const S13 = 17 <BR />Const S14 = 22 <BR />Const S21 = 5 <BR />Const S22 = 9 <BR />Const S23 = 14 <BR />Const S24 = 20 <BR />Const S31 = 4 <BR />Const S32 = 11 <BR />Const S33 = 16 <BR />Const S34 = 23 <BR />Const S41 = 6 <BR />Const S42 = 10 <BR />Const S43 = 15 <BR />Const S44 = 21 <br /><br />x = ConvertToWordArray(sMessage) <br /><br />a = &H67452301 <BR />b = &HEFCDAB89 <BR />c = &H98BADCFE <BR />d = &H10325476 <br /><br />For k = 0 To UBound(x) Step 16 <BR />AA = a <BR />BB = b <BR />CC = c <BR />DD = d <br /><br />md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478 <BR />md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756 <BR />md5_FF c, d, a, b, x(k + 2), S13, &H242070DB <BR />md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE <BR />md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF <BR />md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A <BR />md5_FF c, d, a, b, x(k + 6), S13, &HA8304613 <BR />md5_FF b, c, d, a, x(k + 7), S14, &HFD469501 <BR />md5_FF a, b, c, d, x(k + 8), S11, &H698098D8 <BR />md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF <BR />md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 <BR />md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE <BR />md5_FF a, b, c, d, x(k + 12), S11, &H6B901122 <BR />md5_FF d, a, b, c, x(k + 13), S12, &HFD987193 <BR />md5_FF c, d, a, b, x(k + 14), S13, &HA679438E <BR />md5_FF b, c, d, a, x(k + 15), S14, &H49B40821 <br /><br />md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562 <BR />md5_GG d, a, b, c, x(k + 6), S22, &HC040B340 <BR />md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51 <BR />md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA <BR />md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D <BR />md5_GG d, a, b, c, x(k + 10), S22, &H2441453 <BR />md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681 <BR />md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 <BR />md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 <BR />md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6 <BR />md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87 <BR />md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED <BR />md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905 <BR />md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 <BR />md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9 <BR />md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A <br /><br />md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942 <BR />md5_HH d, a, b, c, x(k + 8), S32, &H8771F681 <BR />md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122 <BR />md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C <BR />md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 <BR />md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 <BR />md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 <BR />md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 <BR />md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6 <BR />md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA <BR />md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085 <BR />md5_HH b, c, d, a, x(k + 6), S34, &H4881D05 <BR />md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039 <BR />md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 <BR />md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 <BR />md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665 <br /><br />md5_II a, b, c, d, x(k + 0), S41, &HF4292244 <BR />md5_II d, a, b, c, x(k + 7), S42, &H432AFF97 <BR />md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7 <BR />md5_II b, c, d, a, x(k + 5), S44, &HFC93A039 <BR />md5_II a, b, c, d, x(k + 12), S41, &H655B59C3 <BR />md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92 <BR />md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D <BR />md5_II b, c, d, a, x(k + 1), S44, &H85845DD1 <BR />md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F <BR />md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 <BR />md5_II c, d, a, b, x(k + 6), S43, &HA3014314 <BR />md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1 <BR />md5_II a, b, c, d, x(k + 4), S41, &HF7537E82 <BR />md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235 <BR />md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB <BR />md5_II b, c, d, a, x(k + 9), S44, &HEB86D391 <br /><br />a = AddUnsigned(a, AA) <BR />b = AddUnsigned(b, BB) <BR />c = AddUnsigned(c, CC) <BR />d = AddUnsigned(d, DD) <BR />Next <br /><br />MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))    '32byte <BR />'MD5 = LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D <BR />End Function <BR />%> <BR /> <br /><br />2.send.asp <BR /><span><U></U></span> 代码如下:
<BR /><!--#include file="md5.asp"--> <BR /><% <BR />''''''''' <BR />' @Description: 快钱网关接口范例 <BR />' @Copyright (c) 上海快钱信息服务有限公司 <BR />' @version 2.0 <BR />''''''''' <BR />merchant_id = request("cid")        '''商户编号 <BR />merchant_key = request("mykey")        '''商户密钥 <BR />orderid = request("orderid")        '''订单编号 <BR />amount = request("totalmoney")        '''订单金额 <BR />curr = "1"        '''货币类型,1为人民币 <BR />isSupportDES = "2"        '''是否安全校验,2为必校验,推荐 <br /><br />merchant_url = ""        '''支付结果返回地址 <BR />pname = request("pname")        '''支付人姓名 <BR />commodity_info = ""        '''商品信息 <BR />merchant_param = ""        '''商户私有参数 <br /><br />pemail=""        '''传递email到快钱网关页面 <BR />pid=""        '''代理/合作伙伴商户编号 <br /><br />'''生成加密串,注意顺序 <BR />ScrtStr="merchant_id=" & merchant_id & "&orderid=" & orderid & "&amount=" & amount & "&merchant_url=" & merchant_url & "&merchant_key=" & merchant_key <BR />mac=ucase(md5(ScrtStr)) <br /><br />%> <br /><br /><!doctype html public "-//w3c//dtd html 4.0 transitional//en" > <BR /><html> <BR />    <head> <BR />        <title>快钱99bill</title> <BR />        <meta http-equiv="content-type" content="text/html; charset=gb2312" > <BR />    </head> <br /><br /><BODY onLoad="javascript:document.frm.submit()"> <br /><br /><BR />        <form name="frm" method="post" action="https://www.51frw.cn/webapp/receiveMerchantInfoAction.do"> <BR />            <input name="merchant_id" type="hidden" value="<%=merchant_id%>"> <BR />            <input name="orderid" type="hidden" value="<%=orderid%>"> <BR />            <input name="amount" type="hidden" value="<%=amount%>"> <BR />            <input name="currency" type="hidden" value="<%=curr%>"> <BR />            <input name="isSupportDES" type="hidden" value="<%=isSupportDES%>"> <BR />            <input name="mac" type="hidden" value="<%=mac%>"> <br /><br />            <input name="merchant_url" type="hidden" value="<%=merchant_url%>"> <BR />            <input name="pname" type="hidden" value="<%=pname%>"> <BR />            <input name="commodity_info" type="hidden" value="<%=commodity_info%>"> <BR />            <input name="merchant_param" type="hidden" value="<%=merchant_param%>"> <br /><br />            <input name="pemail" type="hidden" value="<%=pemail%>"> <BR />            <input name="pid" type="hidden" value="<%=pid%>"> <br /><br />        </form> <br /><br /></BODY> <BR /></HTML> <BR /> <BR />alipay <br /><br />1.Alipay_md5.asp <BR /><span><U></U></span> 代码如下:
<BR /><% <BR />Private Const BITS_TO_A_BYTE = 8 <BR />Private Const BYTES_TO_A_WORD = 4 <BR />Private Const BITS_TO_A_WORD = 32 <br /><br />Private m_lOnBits(30) <BR />Private m_l2Power(30) <br /><br />Private Function LShift(lValue, iShiftBits) <BR />    If iShiftBits = 0 Then <BR />        LShift = lValue <BR />        Exit Function <BR />    ElseIf iShiftBits = 31 Then <BR />        If lValue And 1 Then <BR />            LShift = &H80000000 <BR />        Else <BR />            LShift = 0 <BR />        End If <BR />        Exit Function <BR />    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then <BR />        Err.Raise 6 <BR />    End If <br /><br />    If (lValue And m_l2Power(31 - iShiftBits)) Then <BR />        LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 <BR />    Else <BR />        LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) <BR />    End If <BR />End Function <br /><br />Private Function str2bin(varstr) <BR />Dim varasc <BR />Dim i <BR />Dim varchar <BR />Dim varlow <BR />Dim varhigh <br /><br />    str2bin="" <BR />For i=1 To Len(varstr) <BR />varchar=mid(varstr,i,1) <BR />varasc = Asc(varchar) <br /><br />If varasc<0 Then <BR />varasc = varasc + 65535 <BR />End If <br /><br />If varasc>255 Then <BR />varlow = Left(Hex(Asc(varchar)),2) <BR />varhigh = right(Hex(Asc(varchar)),2) <BR />str2bin = str2bin & chrB("&H" & varlow) & chrB("&H" & varhigh) <BR />Else <BR />str2bin = str2bin & chrB(AscB(varchar)) <BR />End If <BR />Next <BR />End Function <br /><br />Private Function RShift(lValue, iShiftBits) <BR />    If iShiftBits = 0 Then <BR />        RShift = lValue <BR />        Exit Function <BR />    ElseIf iShiftBits = 31 Then <BR />        If lValue And &H80000000 Then <BR />            RShift = 1 <BR />        Else <BR />            RShift = 0 <BR />        End If <BR />        Exit Function <BR />    ElseIf iShiftBits < 0 Or iShiftBits > 31 Then <BR />        Err.Raise 6 <BR />    End If <br /><br />    RShift = (lValue And &H7FFFFFFE)  m_l2Power(iShiftBits) <br /><br />    If (lValue And &H80000000) Then <BR />        RShift = (RShift Or (&H40000000  m_l2Power(iShiftBits - 1))) <BR />    End If <BR />End Function <br /><br />Private Function RotateLeft(lValue, iShiftBits) <BR />    RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) <BR />End Function <br /><br />Private Function AddUnsigned(lX, lY) <BR />    Dim lX4 <BR />    Dim lY4 <BR />    Dim lX8 <BR />    Dim lY8 <BR />    Dim lResult <br /><br />    lX8 = lX And &H80000000 <BR />    lY8 = lY And &H80000000 <BR />    lX4 = lX And &H40000000 <BR />    lY4 = lY And &H40000000 <br /><br />    lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) <br /><br />    If lX4 And lY4 Then <BR />        lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 <BR />    ElseIf lX4 Or lY4 Then <BR />        If lResult And &H40000000 Then <BR />            lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 <BR />        Else <BR />            lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 <BR />        End If <BR />    Else <BR />        lResult = lResult Xor lX8 Xor lY8 <BR />    End If <br /><br />    AddUnsigned = lResult <BR />End Function <br /><br />Private Function md5_F(x, y, z) <BR />    md5_F = (x And y) Or ((Not x) And z) <BR />End Function <br /><br />Private Function md5_G(x, y, z) <BR />    md5_G = (x And z) Or (y And (Not z)) <BR />End Function <br /><br />Private Function md5_H(x, y, z) <BR />    md5_H = (x Xor y Xor z) <BR />End Function <br /><br />Private Function md5_I(x, y, z) <BR />    md5_I = (y Xor (x Or (Not z))) <BR />End Function <br /><br />Private Sub md5_FF(a, b, c, d, x, s, ac) <BR />    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) <BR />    a = RotateLeft(a, s) <BR />    a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_GG(a, b, c, d, x, s, ac) <BR />    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) <BR />    a = RotateLeft(a, s) <BR />    a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_HH(a, b, c, d, x, s, ac) <BR />    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) <BR />    a = RotateLeft(a, s) <BR />    a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_II(a, b, c, d, x, s, ac) <BR />    a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) <BR />    a = RotateLeft(a, s) <BR />    a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Function ConvertToWordArray(sMessage) <BR />    Dim lMessageLength <BR />    Dim lNumberOfWords <BR />    Dim lWordArray() <BR />    Dim lBytePosition <BR />    Dim lByteCount <BR />    Dim lWordCount <br /><br />    Const MODULUS_BITS = 512 <BR />    Const CONGRUENT_BITS = 448 <br /><br />    lMessageLength = LenB(sMessage) <br /><br />    lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS)  BITS_TO_A_BYTE))  (MODULUS_BITS  BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS  BITS_TO_A_WORD) <BR />    ReDim lWordArray(lNumberOfWords - 1) <br /><br />    lBytePosition = 0 <BR />lByteCount = 0 <BR />    Do Until lByteCount >= lMessageLength <BR />        lWordCount = lByteCount  BYTES_TO_A_WORD <BR />        lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE <BR />        lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(AscB(MidB(sMessage, lByteCount + 1, 1)), lBytePosition) <BR />        lByteCount = lByteCount + 1 <BR />    Loop <br /><br />    lWordCount = lByteCount  BYTES_TO_A_WORD <BR />    lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE <br /><br />    lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) <br /><br />    lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) <BR />    lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) <br /><br />    ConvertToWordArray = lWordArray <BR />End Function <br /><br />Private Function WordToHex(lValue) <BR />    Dim lByte <BR />    Dim lCount <br /><br />    For lCount = 0 To 3 <BR />        lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) <BR />        WordToHex = WordToHex & Right("0" & Hex(lByte), 2) <BR />    Next <BR />End Function <br /><br />Public Function MD5(sMessage) <BR />    m_lOnBits(0) = CLng(1) <BR />    m_lOnBits(1) = CLng(3) <BR />    m_lOnBits(2) = CLng(7) <BR />    m_lOnBits(3) = CLng(15) <BR />    m_lOnBits(4) = CLng(31) <BR />    m_lOnBits(5) = CLng(63) <BR />    m_lOnBits(6) = CLng(127) <BR />    m_lOnBits(7) = CLng(255) <BR />    m_lOnBits(8) = CLng(511) <BR />    m_lOnBits(9) = CLng(1023) <BR />    m_lOnBits(10) = CLng(2047) <BR />    m_lOnBits(11) = CLng(4095) <BR />    m_lOnBits(12) = CLng(8191) <BR />    m_lOnBits(13) = CLng(16383) <BR />    m_lOnBits(14) = CLng(32767) <BR />    m_lOnBits(15) = CLng(65535) <BR />    m_lOnBits(16) = CLng(131071) <BR />    m_lOnBits(17) = CLng(262143) <BR />    m_lOnBits(18) = CLng(524287) <BR />    m_lOnBits(19) = CLng(1048575) <BR />    m_lOnBits(20) = CLng(2097151) <BR />    m_lOnBits(21) = CLng(4194303) <BR />    m_lOnBits(22) = CLng(8388607) <BR />    m_lOnBits(23) = CLng(16777215) <BR />    m_lOnBits(24) = CLng(33554431) <BR />    m_lOnBits(25) = CLng(67108863) <BR />    m_lOnBits(26) = CLng(134217727) <BR />    m_lOnBits(27) = CLng(268435455) <BR />    m_lOnBits(28) = CLng(536870911) <BR />    m_lOnBits(29) = CLng(1073741823) <BR />    m_lOnBits(30) = CLng(2147483647) <br /><br />    m_l2Power(0) = CLng(1) <BR />    m_l2Power(1) = CLng(2) <BR />    m_l2Power(2) = CLng(4) <BR />    m_l2Power(3) = CLng(8) <BR />    m_l2Power(4) = CLng(16) <BR />    m_l2Power(5) = CLng(32) <BR />    m_l2Power(6) = CLng(64) <BR />    m_l2Power(7) = CLng(128) <BR />    m_l2Power(8) = CLng(256) <BR />    m_l2Power(9) = CLng(512) <BR />    m_l2Power(10) = CLng(1024) <BR />    m_l2Power(11) = CLng(2048) <BR />    m_l2Power(12) = CLng(4096) <BR />    m_l2Power(13) = CLng(8192) <BR />    m_l2Power(14) = CLng(16384) <BR />    m_l2Power(15) = CLng(32768) <BR />    m_l2Power(16) = CLng(65536) <BR />    m_l2Power(17) = CLng(131072) <BR />    m_l2Power(18) = CLng(262144) <BR />    m_l2Power(19) = CLng(524288) <BR />    m_l2Power(20) = CLng(1048576) <BR />    m_l2Power(21) = CLng(2097152) <BR />    m_l2Power(22) = CLng(4194304) <BR />    m_l2Power(23) = CLng(8388608) <BR />    m_l2Power(24) = CLng(16777216) <BR />    m_l2Power(25) = CLng(33554432) <BR />    m_l2Power(26) = CLng(67108864) <BR />    m_l2Power(27) = CLng(134217728) <BR />    m_l2Power(28) = CLng(268435456) <BR />    m_l2Power(29) = CLng(536870912) <BR />    m_l2Power(30) = CLng(1073741824) <br /><br />     <BR />    Dim x <BR />    Dim k <BR />    Dim AA <BR />    Dim BB <BR />    Dim CC <BR />    Dim DD <BR />    Dim a <BR />    Dim b <BR />    Dim c <BR />    Dim d <br /><br />    Const S11 = 7 <BR />    Const S12 = 12 <BR />    Const S13 = 17 <BR />    Const S14 = 22 <BR />    Const S21 = 5 <BR />    Const S22 = 9 <BR />    Const S23 = 14 <BR />    Const S24 = 20 <BR />    Const S31 = 4 <BR />    Const S32 = 11 <BR />    Const S33 = 16 <BR />    Const S34 = 23 <BR />    Const S41 = 6 <BR />    Const S42 = 10 <BR />    Const S43 = 15 <BR />    Const S44 = 21 <br /><br />    x = ConvertToWordArray(str2bin(sMessage)) <br /><br />    a = &H67452301 <BR />    b = &HEFCDAB89 <BR />    c = &H98BADCFE <BR />    d = &H10325476 <br /><br />    For k = 0 To UBound(x) Step 16 <BR />        AA = a <BR />        BB = b <BR />        CC = c <BR />        DD = d <br /><br />        md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478 <BR />        md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756 <BR />        md5_FF c, d, a, b, x(k + 2), S13, &H242070DB <BR />        md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE <BR />        md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF <BR />        md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A <BR />        md5_FF c, d, a, b, x(k + 6), S13, &HA8304613 <BR />        md5_FF b, c, d, a, x(k + 7), S14, &HFD469501 <BR />        md5_FF a, b, c, d, x(k + 8), S11, &H698098D8 <BR />        md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF <BR />        md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 <BR />        md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE <BR />        md5_FF a, b, c, d, x(k + 12), S11, &H6B901122 <BR />        md5_FF d, a, b, c, x(k + 13), S12, &HFD987193 <BR />        md5_FF c, d, a, b, x(k + 14), S13, &HA679438E <BR />        md5_FF b, c, d, a, x(k + 15), S14, &H49B40821 <br /><br />        md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562 <BR />        md5_GG d, a, b, c, x(k + 6), S22, &HC040B340 <BR />        md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51 <BR />        md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA <BR />        md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D <BR />        md5_GG d, a, b, c, x(k + 10), S22, &H2441453 <BR />        md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681 <BR />        md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 <BR />        md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 <BR />        md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6 <BR />        md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87 <BR />        md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED <BR />        md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905 <BR />        md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 <BR />        md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9 <BR />        md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A <br /><br />        md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942 <BR />        md5_HH d, a, b, c, x(k + 8), S32, &H8771F681 <BR />        md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122 <BR />        md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C <BR />        md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 <BR />        md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 <BR />        md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 <BR />        md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 <BR />        md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6 <BR />        md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA <BR />        md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085 <BR />        md5_HH b, c, d, a, x(k + 6), S34, &H4881D05 <BR />        md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039 <BR />        md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 <BR />        md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 <BR />        md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665 <br /><br />        md5_II a, b, c, d, x(k + 0), S41, &HF4292244 <BR />        md5_II d, a, b, c, x(k + 7), S42, &H432AFF97 <BR />        md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7 <BR />        md5_II b, c, d, a, x(k + 5), S44, &HFC93A039 <BR />        md5_II a, b, c, d, x(k + 12), S41, &H655B59C3 <BR />        md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92 <BR />        md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D <BR />        md5_II b, c, d, a, x(k + 1), S44, &H85845DD1 <BR />        md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F <BR />        md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 <BR />        md5_II c, d, a, b, x(k + 6), S43, &HA3014314 <BR />        md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1 <BR />        md5_II a, b, c, d, x(k + 4), S41, &HF7537E82 <BR />        md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235 <BR />        md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB <BR />        md5_II b, c, d, a, x(k + 9), S44, &HEB86D391 <br /><br />        a = AddUnsigned(a, AA) <BR />        b = AddUnsigned(b, BB) <BR />        c = AddUnsigned(c, CC) <BR />        d = AddUnsigned(d, DD) <BR />    Next <br /><br />    MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d)) <BR />End Function <BR />%> <BR /> <BR />2.Alipay_Payto.asp <br /><br /><span><U></U></span> 代码如下:
<BR /><!--#include file="Alipay_md5.asp"--> <BR /><% <br /><br />Class creatAlipayItemURL <BR />    '获得最终的购买url <br /><br />    Public Function creatAlipayItemURL(t1,t4,t5,service,agent,partner,sign_type,subject,body,out_trade_no,price,discount,show_url,quantity,payment_type,logistics_type,logistics_fee,logistics_payment,logistics_type_1,logistics_fee_1,logistics_payment_1,seller_email,notify_url,return_url,key) <BR />        Dim itemURL <BR />        dim INTERFACE_URL,imgsrc,imgtitle <BR />        '初始化各必要变量 <BR />        INTERFACE_URL    = t1    '支付接口 <BR />        imgsrc            = t4        '支付宝按钮图片 <BR />        imgtitle        = t5        '按钮悬停说明 <br /><br />    'Add by sunzhizhi 2006-5-10 <br /><br />mystr = Array("service="&service,"agent="&agent,"partner="&partner,"subject="&subject,"body="&body,"out_trade_no="&out_trade_no,"price="&price,"discount="&discount,"show_url="&show_url,"quantity="&quantity,"payment_type="&payment_type,"logistics_type="&logistics_type,"logistics_fee="&logistics_fee,"logistics_payment="&logistics_payment,"logistics_type_1="&logistics_type_1,"logistics_fee_1="&logistics_fee_1,"logistics_payment_1="&logistics_payment_1,"seller_email="&seller_email,"notify_url="&notify_url,"return_url="&return_url) <br /><br />Count=ubound(mystr) <br /><br /><BR />For i = Count TO 0 Step -1 <BR />minmax = mystr( 0 ) <BR />minmaxSlot = 0 <BR />For j = 1 To i <BR />mark = (mystr( j ) > minmax) <BR />If mark Then <BR />minmax = mystr( j ) <BR />minmaxSlot = j <BR />End If <BR />Next <br /><br />If minmaxSlot <> i Then <br /><br />temp = mystr( minmaxSlot ) <BR />mystr( minmaxSlot ) = mystr( i ) <BR />mystr( i ) = temp <BR />End If <BR />Next <br /><br /><br /><br /><BR />For j = 0 To Count Step 1 <BR />value = SPLIT(mystr( j ), "=") <br /><br />If value(1)<>"" then <BR />If j=Count Then <BR />md5str= md5str&mystr( j ) <BR />     Else <BR />md5str= md5str&mystr( j )&"&" <BR />     End If <BR />End If <BR />Next <br /><br />md5str=md5str&key <BR />     ' response.write md5str <br /><br />     sign=md5(md5str) <br /><br /><BR />    itemURL    = itemURL&INTERFACE_URL <br /><br /><br /><br />    For j = 0 To Count Step 1 <br /><br />     value = SPLIT(mystr( j ), "=") <BR />        If value(1)<>"" then <BR />        itemURL= itemURL&mystr( j )&"&" <BR />        End If      <BR />Next <BR />        itemURL    = itemURL&"sign="&sign&"&sign_type="&sign_type <br /><br />        'response.write itemURL <br /><br />    creatAlipayItemURL    = itemURL     <br /><br />                 <br /><br />    End Function <br /><br /><br /><br />    Public Function get_AlipayButtonURL(itemURL,imgtitle,imgsrc) <BR />        dim responseText1 <BR />        responseText1    =    responseText1 & "<a href="" & itemURL & "" href="" & itemURL & "" target='_blank'>"        '购买网址 <BR />        responseText1    =    responseText1 & "<img alt='" & imgtitle & "' src=""                " src=""                "图片说明 <BR />        responseText1    =    responseText1 & imgsrc                                            '图片地址 <BR />        responseText1    =    responseText1 & "' align='absmiddle' border='0'/></a>" <BR />        get_AlipayButtonURL=responseText1 <BR />    End Function <br /><br />End Class <BR />%> <BR /> <BR />3.send1.asp <BR /><span><U></U></span> 代码如下:
<BR /><!--#include file="alipay_payto.asp"--> <BR /><% <br /><br />cid = request("cid")        '''商户编号 <BR />response.write cid&"<br>" <BR />meykey = request("mykey")        '''商户密钥 <BR />response.write meykey&"<br>" <br /><br />out_trade_no = request("orderid")        '''订单编号 <BR />response.write out_trade_no&"<br>" <br /><br />totalmoeny = request("totalmoney")        '''订单金额 <BR />response.write totalmoeny&"<br>" <br /><br />partnerid=request("other1") <BR />response.write partnerid&"<br>" <br /><br />'response.end <BR />dim service,agent,partner,sign_type,subject,body,out_trade_no,price,discount,show_url,quantity,payment_type,logistics_type,logistics_fee,logistics_payment,logistics_type_1,logistics_fee_1,logistics_payment_1,seller_email,notify_url,return_url <BR />dim t1,t4,t5,key <BR />dim AlipayObj,itemUrl <BR />    t1                =    "https://www.51frw.cn/cooperate/gateway.do?"    '支付接口 <BR />    t4                =    "images/alipay_bwrx.gif"        '支付宝按钮图片 <BR />    t5                =    "推荐使用支付宝付款"                        '按钮悬停说明 <br /><br />    service = "trade_create_by_buyer" '"trade_create_by_buyer" <BR />    agent = partnerid '合作厂商id <BR />    partner            =    partnerid        'partner合作伙伴ID(必须填) <BR />    sign_type = "MD5" <BR />    subject            =    ""        '商品名称 <BR />    body            =    ""        'body            商品描述 <BR />    out_trade_no = Trim(Replace(out_trade_no,":","")) '客户网站订单号,(现取系统时间,可改成网站自己的变量) <BR />    price         =    totalmoeny                 'price商品单价            0.01~50000.00 <BR />discount = "0" '商品折扣 <BR />show_url = "" '商品展示地址(可以直接写网站首页网址) <BR />quantity = "" '商品数量 <BR />payment_type = "1" '支付类型,(1代表商品购买) <BR />logistics_type = "" '物流种类(快递) <BR />logistics_fee = "" '物流费用 <BR />logistics_payment = "" '物流费用承担(卖家付) <BR />    logistics_type_1 = "" <BR />logistics_fee_1 = "" <BR />logistics_payment_1 = "" '物流费用承担(买家付) <BR />seller_email = cid '(必须填) <BR />key = mykey '(必须填) <BR />notify_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经) <BR />return_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经) <br /><br />    Set AlipayObj    = New creatAlipayItemURL <BR />    itemUrl=AlipayObj.creatAlipayItemURL(t1,t4,t5,service,agent,partner,sign_type,subject,body,out_trade_no,price,discount,show_url,quantity,payment_type,logistics_type,logistics_fee,logistics_payment,logistics_type_1,logistics_fee_1,logistics_payment_1,seller_email,notify_url,return_url,key) <br /><br />response.redirect itemUrl <BR />response.end <BR />%> <BR /> <br /><br />4.send.asp <BR /><span><U></U></span> 代码如下:
<BR /><!--#include file="alipay_payto.asp"--> <BR /><% <br /><br />cid = request("cid")        '''商户编号 <BR />response.write cid&"<br>" <BR />meykey = request("mykey")        '''商户密钥 <BR />response.write meykey&"<br>" <br /><br />orderid = request("orderid")        '''订单编号 <BR />response.write orderid &"<br>" <br /><br />totalmoeny = request("totalmoney")        '''订单金额 <BR />response.write totalmoeny&"<br>" <br /><br />partnerid=request("other1") <BR />response.write partnerid&"<br>" <br /><br />other2=request("other2") <BR />other3=request("other3") <br /><br />'response.end <BR />dim service,agent,partner,sign_type,subject,body,out_trade_no,price,discount,show_url,quantity,payment_type,logistics_type,logistics_fee,logistics_payment,logistics_type_1,logistics_fee_1,logistics_payment_1,seller_email,notify_url,return_url <BR />dim t1,t4,t5,key <BR />dim AlipayObj,itemUrl <BR />    t1                =    "https://www.51frw.cn/cooperate/gateway.do?"    '支付接口 <BR />    t4                =    "images/alipay_bwrx.gif"        '支付宝按钮图片 <BR />    t5                =    "推荐使用支付宝付款"                        '按钮悬停说明 <br /><br />    service = "trade_create_by_buyer" <BR />    agent = partnerid '合作厂商id <BR />    partner            =    partnerid        'partner合作伙伴ID(必须填) <BR />    sign_type = "MD5" <BR />    subject            =    "商品"        '商品名称 <BR />    body            =    ""        'body            商品描述 <BR />    out_trade_no = orderid '客户网站订单号,(现取系统时间,可改成网站自己的变量) <BR />    price         =    totalmoeny                 'price商品单价            0.01~50000.00 <BR />discount = "0" '商品折扣 <BR />show_url = "" '商品展示地址(可以直接写网站首页网址) <BR />quantity = "1" '商品数量 <BR />payment_type = "1" '支付类型,(1代表商品购买) <BR />logistics_type = "EXPRESS" '物流种类(快递) <BR />logistics_fee = other3 '物流费用 <BR />logistics_payment = other2 '物流费用承担(卖家付) <BR />    logistics_type_1 = "" <BR />logistics_fee_1 = "" <BR />logistics_payment_1 = "" '物流费用承担(买家付) <BR />seller_email = cid '(必须填) <BR />key = meykey '(必须填) <BR />notify_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经) <BR />return_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经) <br /><br />    Set AlipayObj    = New creatAlipayItemURL <BR />    itemUrl=AlipayObj.creatAlipayItemURL(t1,t4,t5,service,agent,partner,sign_type,subject,body,out_trade_no,price,discount,show_url,quantity,payment_type,logistics_type,logistics_fee,logistics_payment,logistics_type_1,logistics_fee_1,logistics_payment_1,seller_email,notify_url,return_url,key) <br /><br />response.redirect itemUrl <BR />response.end <BR />%> <BR /> <br /><br />chinabank <br /><br />1.MD5.asp <br /><br /><span><U></U></span> 代码如下:
<BR /><% <BR />Private Const BITS_TO_A_BYTE = 8 <BR />Private Const BYTES_TO_A_WORD = 4 <BR />Private Const BITS_TO_A_WORD = 32 <br /><br />Private m_lOnBits(30) <BR />Private m_l2Power(30) <br /><br />Private Function LShift(lValue, iShiftBits) <BR />If iShiftBits = 0 Then <BR />LShift = lValue <BR />Exit Function <BR />ElseIf iShiftBits = 31 Then <BR />If lValue And 1 Then <BR />LShift = &H80000000 <BR />Else <BR />LShift = 0 <BR />End If <BR />Exit Function <BR />ElseIf iShiftBits < 0 Or iShiftBits > 31 Then <BR />Err.Raise 6 <BR />End If <br /><br />If (lValue And m_l2Power(31 - iShiftBits)) Then <BR />LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 <BR />Else <BR />LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) <BR />End If <BR />End Function <br /><br />Private Function RShift(lValue, iShiftBits) <BR />If iShiftBits = 0 Then <BR />RShift = lValue <BR />Exit Function <BR />ElseIf iShiftBits = 31 Then <BR />If lValue And &H80000000 Then <BR />RShift = 1 <BR />Else <BR />RShift = 0 <BR />End If <BR />Exit Function <BR />ElseIf iShiftBits < 0 Or iShiftBits > 31 Then <BR />Err.Raise 6 <BR />End If <br /><br />RShift = (lValue And &H7FFFFFFE)  m_l2Power(iShiftBits) <br /><br />If (lValue And &H80000000) Then <BR />RShift = (RShift Or (&H40000000  m_l2Power(iShiftBits - 1))) <BR />End If <BR />End Function <br /><br />Private Function RotateLeft(lValue, iShiftBits) <BR />RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) <BR />End Function <br /><br />Private Function AddUnsigned(lX, lY) <BR />Dim lX4 <BR />Dim lY4 <BR />Dim lX8 <BR />Dim lY8 <BR />Dim lResult <br /><br />lX8 = lX And &H80000000 <BR />lY8 = lY And &H80000000 <BR />lX4 = lX And &H40000000 <BR />lY4 = lY And &H40000000 <br /><br />lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) <br /><br />If lX4 And lY4 Then <BR />lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 <BR />ElseIf lX4 Or lY4 Then <BR />If lResult And &H40000000 Then <BR />lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 <BR />Else <BR />lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 <BR />End If <BR />Else <BR />lResult = lResult Xor lX8 Xor lY8 <BR />End If <br /><br />AddUnsigned = lResult <BR />End Function <br /><br />Private Function md5_F(x, y, z) <BR />md5_F = (x And y) Or ((Not x) And z) <BR />End Function <br /><br />Private Function md5_G(x, y, z) <BR />md5_G = (x And z) Or (y And (Not z)) <BR />End Function <br /><br />Private Function md5_H(x, y, z) <BR />md5_H = (x Xor y Xor z) <BR />End Function <br /><br />Private Function md5_I(x, y, z) <BR />md5_I = (y Xor (x Or (Not z))) <BR />End Function <br /><br />Private Sub md5_FF(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_GG(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_HH(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Sub md5_II(a, b, c, d, x, s, ac) <BR />a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) <BR />a = RotateLeft(a, s) <BR />a = AddUnsigned(a, b) <BR />End Sub <br /><br />Private Function ConvertToWordArray(sMessage) <BR />Dim lMessageLength <BR />Dim lNumberOfWords <BR />Dim lWordArray() <BR />Dim lBytePosition <BR />Dim lByteCount <BR />Dim lWordCount <br /><br />Const MODULUS_BITS = 512 <BR />Const CONGRUENT_BITS = 448 <br /><br />lMessageLength = Len(sMessage) <br /><br />lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS)  BITS_TO_A_BYTE))  (MODULUS_BITS  BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS  BITS_TO_A_WORD) <BR />ReDim lWordArray(lNumberOfWords - 1) <br /><br />lBytePosition = 0 <BR />lByteCount = 0 <BR />Do Until lByteCount >= lMessageLength <BR />lWordCount = lByteCount  BYTES_TO_A_WORD <BR />lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE <BR />lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) <BR />lByteCount = lByteCount + 1 <BR />Loop <br /><br />lWordCount = lByteCount  BYTES_TO_A_WORD <BR />lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE <br /><br />lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) <br /><br />lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) <BR />lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) <br /><br />ConvertToWordArray = lWordArray <BR />End Function <br /><br />Private Function WordToHex(lValue) <BR />Dim lByte <BR />Dim lCount <br /><br />For lCount = 0 To 3 <BR />lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) <BR />WordToHex = WordToHex & Right("0" & Hex(lByte), 2) <BR />Next <BR />End Function <br /><br />Public Function MD5(sMessage) <BR />m_lOnBits(0) = CLng(1) <BR />m_lOnBits(1) = CLng(3) <BR />m_lOnBits(2) = CLng(7) <BR />m_lOnBits(3) = CLng(15) <BR />m_lOnBits(4) = CLng(31) <BR />m_lOnBits(5) = CLng(63) <BR />m_lOnBits(6) = CLng(127) <BR />m_lOnBits(7) = CLng(255) <BR />m_lOnBits(8) = CLng(511) <BR />m_lOnBits(9) = CLng(1023) <BR />m_lOnBits(10) = CLng(2047) <BR />m_lOnBits(11) = CLng(4095) <BR />m_lOnBits(12) = CLng(8191) <BR />m_lOnBits(13) = CLng(16383) <BR />m_lOnBits(14) = CLng(32767) <BR />m_lOnBits(15) = CLng(65535) <BR />m_lOnBits(16) = CLng(131071) <BR />m_lOnBits(17) = CLng(262143) <BR />m_lOnBits(18) = CLng(524287) <BR />m_lOnBits(19) = CLng(1048575) <BR />m_lOnBits(20) = CLng(2097151) <BR />m_lOnBits(21) = CLng(4194303) <BR />m_lOnBits(22) = CLng(8388607) <BR />m_lOnBits(23) = CLng(16777215) <BR />m_lOnBits(24) = CLng(33554431) <BR />m_lOnBits(25) = CLng(67108863) <BR />m_lOnBits(26) = CLng(134217727) <BR />m_lOnBits(27) = CLng(268435455) <BR />m_lOnBits(28) = CLng(536870911) <BR />m_lOnBits(29) = CLng(1073741823) <BR />m_lOnBits(30) = CLng(2147483647) <br /><br />m_l2Power(0) = CLng(1) <BR />m_l2Power(1) = CLng(2) <BR />m_l2Power(2) = CLng(4) <BR />m_l2Power(3) = CLng(8) <BR />m_l2Power(4) = CLng(16) <BR />m_l2Power(5) = CLng(32) <BR />m_l2Power(6) = CLng(64) <BR />m_l2Power(7) = CLng(128) <BR />m_l2Power(8) = CLng(256) <BR />m_l2Power(9) = CLng(512) <BR />m_l2Power(10) = CLng(1024) <BR />m_l2Power(11) = CLng(2048) <BR />m_l2Power(12) = CLng(4096) <BR />m_l2Power(13) = CLng(8192) <BR />m_l2Power(14) = CLng(16384) <BR />m_l2Power(15) = CLng(32768) <BR />m_l2Power(16) = CLng(65536) <BR />m_l2Power(17) = CLng(131072) <BR />m_l2Power(18) = CLng(262144) <BR />m_l2Power(19) = CLng(524288) <BR />m_l2Power(20) = CLng(1048576) <BR />m_l2Power(21) = CLng(2097152) <BR />m_l2Power(22) = CLng(4194304) <BR />m_l2Power(23) = CLng(8388608) <BR />m_l2Power(24) = CLng(16777216) <BR />m_l2Power(25) = CLng(33554432) <BR />m_l2Power(26) = CLng(67108864) <BR />m_l2Power(27) = CLng(134217728) <BR />m_l2Power(28) = CLng(268435456) <BR />m_l2Power(29) = CLng(536870912) <BR />m_l2Power(30) = CLng(1073741824) <br /><br /><BR />Dim x <BR />Dim k <BR />Dim AA <BR />Dim BB <BR />Dim CC <BR />Dim DD <BR />Dim a <BR />Dim b <BR />Dim c <BR />Dim d <br /><br />Const S11 = 7 <BR />Const S12 = 12 <BR />Const S13 = 17 <BR />Const S14 = 22 <BR />Const S21 = 5 <BR />Const S22 = 9 <BR />Const S23 = 14 <BR />Const S24 = 20 <BR />Const S31 = 4 <BR />Const S32 = 11 <BR />Const S33 = 16 <BR />Const S34 = 23 <BR />Const S41 = 6 <BR />Const S42 = 10 <BR />Const S43 = 15 <BR />Const S44 = 21 <br /><br />x = ConvertToWordArray(sMessage) <br /><br />a = &H67452301 <BR />b = &HEFCDAB89 <BR />c = &H98BADCFE <BR />d = &H10325476 <br /><br />For k = 0 To UBound(x) Step 16 <BR />AA = a <BR />BB = b <BR />CC = c <BR />DD = d <br /><br />md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478 <BR />md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756 <BR />md5_FF c, d, a, b, x(k + 2), S13, &H242070DB <BR />md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE <BR />md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF <BR />md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A <BR />md5_FF c, d, a, b, x(k + 6), S13, &HA8304613 <BR />md5_FF b, c, d, a, x(k + 7), S14, &HFD469501 <BR />md5_FF a, b, c, d, x(k + 8), S11, &H698098D8 <BR />md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF <BR />md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 <BR />md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE <BR />md5_FF a, b, c, d, x(k + 12), S11, &H6B901122 <BR />md5_FF d, a, b, c, x(k + 13), S12, &HFD987193 <BR />md5_FF c, d, a, b, x(k + 14), S13, &HA679438E <BR />md5_FF b, c, d, a, x(k + 15), S14, &H49B40821 <br /><br />md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562 <BR />md5_GG d, a, b, c, x(k + 6), S22, &HC040B340 <BR />md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51 <BR />md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA <BR />md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D <BR />md5_GG d, a, b, c, x(k + 10), S22, &H2441453 <BR />md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681 <BR />md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 <BR />md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 <BR />md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6 <BR />md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87 <BR />md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED <BR />md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905 <BR />md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 <BR />md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9 <BR />md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A <br /><br />md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942 <BR />md5_HH d, a, b, c, x(k + 8), S32, &H8771F681 <BR />md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122 <BR />md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C <BR />md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 <BR />md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 <BR />md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 <BR />md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 <BR />md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6 <BR />md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA <BR />md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085 <BR />md5_HH b, c, d, a, x(k + 6), S34, &H4881D05 <BR />md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039 <BR />md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 <BR />md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 <BR />md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665 <br /><br />md5_II a, b, c, d, x(k + 0), S41, &HF4292244 <BR />md5_II d, a, b, c, x(k + 7), S42, &H432AFF97 <BR />md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7 <BR />md5_II b, c, d, a, x(k + 5), S44, &HFC93A039 <BR />md5_II a, b, c, d, x(k + 12), S41, &H655B59C3 <BR />md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92 <BR />md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D <BR />md5_II b, c, d, a, x(k + 1), S44, &H85845DD1 <BR />md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F <BR />md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 <BR />md5_II c, d, a, b, x(k + 6), S43, &HA3014314 <BR />md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1 <BR />md5_II a, b, c, d, x(k + 4), S41, &HF7537E82 <BR />md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235 <BR />md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB <BR />md5_II b, c, d, a, x(k + 9), S44, &HEB86D391 <br /><br />a = AddUnsigned(a, AA) <BR />b = AddUnsigned(b, BB) <BR />c = AddUnsigned(c, CC) <BR />d = AddUnsigned(d, DD) <BR />Next <br /><br />MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))    '32byte <BR />'MD5 = LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D <BR />End Function <BR />%> <BR /> <br /><br />2.Send.asp <BR /><span><U></U></span> 代码如下:
<BR /><!-- <BR />* ==================================================================== <BR />* <BR />* Send.asp 由网银在线技术支持提供 <BR />* <BR />* 本页面接收来自上页所有订单信息,并提交支付订单到网线在线支付平台.... <BR />* <BR />* <BR />* ==================================================================== <BR />--> <br /><br /><!--#include file="MD5.asp"--> <br /><br /><% <BR />'****************************************     <BR />    v_mid = request("cid")                     ' 商户号,这里为测试商户号20000400,替换为自己的商户号即可 <BR />    v_url = "" ' 商户自定义返回接收支付结果的页面 Receive.asp 为接收页面 <br /><br />                                                     ' MD5密钥要跟订单提交页相同,如Send.asp里的 key = "test" ,修改""号内 test 为您的密钥 <BR />    key = request("mykey")                                 ' 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/ <BR />                                                     ' 登陆后在上面的导航栏里可能找到“资料管理”,在资料管理的二级导航栏里有“MD5密钥设置” <BR />                                                     ' 建议您设置一个16位以上的密钥或更高,密钥最多64位,但设置16位已经足够了 <BR />'****************************************%> <br /><br /><BR /><% <BR />if request("orderid")<>"" then                                '判断是否有传递订单号 <br /><br />         v_oid = request("orderid") <br /><br />     else <br /><br />         curdate = now()                                        ' 根据系统时间产生订单,格式:YYYYMMDD-v_mid-HMMSS <BR />         ymd = year(curdate)&month(curdate)&day(curdate)        ' 年月日 <BR />         hms = hour(curdate)&minute(curdate)&second(curdate)  &nbs


           
                
                                                

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!