源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp 一些支付接口

  • 时间:2021-06-29 14:36 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp 一些支付接口
99bill: 1.md5.asp
[url=]        responseText1    =    responseText1 & "<img alt='" & imgtitle & "' src=""                " src=""                "图片说明         responseText1    =    responseText1 & imgsrc                                            '图片地址         responseText1    =    responseText1 & "' align='absmiddle' border='0'/></a>"         get_AlipayButtonURL=responseText1     End Function End Class %>
3.send1.asp
<!--#include file="alipay_payto.asp"--> <% cid = request("cid")        '''商户编号 response.write cid&"<br>" meykey = request("mykey")        '''商户密钥 response.write meykey&"<br>" out_trade_no = request("orderid")        '''订单编号 response.write out_trade_no&"<br>" totalmoeny = request("totalmoney")        '''订单金额 response.write totalmoeny&"<br>" partnerid=request("other1") response.write partnerid&"<br>" 'response.end 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 dim t1,t4,t5,key dim AlipayObj,itemUrl     t1                =    "https://www.alipay.com/cooperate/gateway.do?"    '支付接口     t4                =    "images/alipay_bwrx.gif"        '支付宝按钮图片     t5                =    "推荐使用支付宝付款"                        '按钮悬停说明     service = "trade_create_by_buyer" '"trade_create_by_buyer"     agent = partnerid '合作厂商id     partner            =    partnerid        'partner合作伙伴ID(必须填)     sign_type = "MD5"     subject            =    ""        '商品名称     body            =    ""        'body            商品描述     out_trade_no = Trim(Replace(out_trade_no,":","")) '客户网站订单号,(现取系统时间,可改成网站自己的变量)     price         =    totalmoeny                 'price商品单价            0.01~50000.00 discount = "0" '商品折扣 show_url = "" '商品展示地址(可以直接写网站首页网址) quantity = "" '商品数量 payment_type = "1" '支付类型,(1代表商品购买) logistics_type = "" '物流种类(快递) logistics_fee = "" '物流费用 logistics_payment = "" '物流费用承担(卖家付)     logistics_type_1 = "" logistics_fee_1 = "" logistics_payment_1 = "" '物流费用承担(买家付) seller_email = cid '(必须填) key = mykey '(必须填) notify_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经) return_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经)     Set AlipayObj    = New creatAlipayItemURL     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) response.redirect itemUrl response.end %>
4.send.asp
[u]复制代码[/u] 代码如下:
<!--#include file="alipay_payto.asp"--> <% cid = request("cid")        '''商户编号 response.write cid&"<br>" meykey = request("mykey")        '''商户密钥 response.write meykey&"<br>" orderid = request("orderid")        '''订单编号 response.write orderid &"<br>" totalmoeny = request("totalmoney")        '''订单金额 response.write totalmoeny&"<br>" partnerid=request("other1") response.write partnerid&"<br>" other2=request("other2") other3=request("other3") 'response.end 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 dim t1,t4,t5,key dim AlipayObj,itemUrl     t1                =    "https://www.alipay.com/cooperate/gateway.do?"    '支付接口     t4                =    "images/alipay_bwrx.gif"        '支付宝按钮图片     t5                =    "推荐使用支付宝付款"                        '按钮悬停说明     service = "trade_create_by_buyer"     agent = partnerid '合作厂商id     partner            =    partnerid        'partner合作伙伴ID(必须填)     sign_type = "MD5"     subject            =    "商品"        '商品名称     body            =    ""        'body            商品描述     out_trade_no = orderid '客户网站订单号,(现取系统时间,可改成网站自己的变量)     price         =    totalmoeny                 'price商品单价            0.01~50000.00 discount = "0" '商品折扣 show_url = "" '商品展示地址(可以直接写网站首页网址) quantity = "1" '商品数量 payment_type = "1" '支付类型,(1代表商品购买) logistics_type = "EXPRESS" '物流种类(快递) logistics_fee = other3 '物流费用 logistics_payment = other2 '物流费用承担(卖家付)     logistics_type_1 = "" logistics_fee_1 = "" logistics_payment_1 = "" '物流费用承担(买家付) seller_email = cid '(必须填) key = meykey '(必须填) notify_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经) return_url= "" '服务器通知url(不使用,请不要注释或者删除此参数,不用传递给支付宝系统,Alipay_Notify.asp文件所在路经)     Set AlipayObj    = New creatAlipayItemURL     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) response.redirect itemUrl response.end %>
chinabank 1.MD5.asp
[u]复制代码[/u] 代码如下:
<% Private Const BITS_TO_A_BYTE = 8 Private Const BYTES_TO_A_WORD = 4 Private Const BITS_TO_A_WORD = 32 Private m_lOnBits(30) Private m_l2Power(30) Private Function LShift(lValue, iShiftBits) If iShiftBits = 0 Then LShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And 1 Then LShift = &H80000000 Else LShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If If (lValue And m_l2Power(31 - iShiftBits)) Then LShift = ((lValue And m_lOnBits(31 - (iShiftBits + 1))) * m_l2Power(iShiftBits)) Or &H80000000 Else LShift = ((lValue And m_lOnBits(31 - iShiftBits)) * m_l2Power(iShiftBits)) End If End Function Private Function RShift(lValue, iShiftBits) If iShiftBits = 0 Then RShift = lValue Exit Function ElseIf iShiftBits = 31 Then If lValue And &H80000000 Then RShift = 1 Else RShift = 0 End If Exit Function ElseIf iShiftBits < 0 Or iShiftBits > 31 Then Err.Raise 6 End If RShift = (lValue And &H7FFFFFFE) \ m_l2Power(iShiftBits) If (lValue And &H80000000) Then RShift = (RShift Or (&H40000000 \ m_l2Power(iShiftBits - 1))) End If End Function Private Function RotateLeft(lValue, iShiftBits) RotateLeft = LShift(lValue, iShiftBits) Or RShift(lValue, (32 - iShiftBits)) End Function Private Function AddUnsigned(lX, lY) Dim lX4 Dim lY4 Dim lX8 Dim lY8 Dim lResult lX8 = lX And &H80000000 lY8 = lY And &H80000000 lX4 = lX And &H40000000 lY4 = lY And &H40000000 lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF) If lX4 And lY4 Then lResult = lResult Xor &H80000000 Xor lX8 Xor lY8 ElseIf lX4 Or lY4 Then If lResult And &H40000000 Then lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8 Else lResult = lResult Xor &H40000000 Xor lX8 Xor lY8 End If Else lResult = lResult Xor lX8 Xor lY8 End If AddUnsigned = lResult End Function Private Function md5_F(x, y, z) md5_F = (x And y) Or ((Not x) And z) End Function Private Function md5_G(x, y, z) md5_G = (x And z) Or (y And (Not z)) End Function Private Function md5_H(x, y, z) md5_H = (x Xor y Xor z) End Function Private Function md5_I(x, y, z) md5_I = (y Xor (x Or (Not z))) End Function Private Sub md5_FF(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_F(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_GG(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_G(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_HH(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_H(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Sub md5_II(a, b, c, d, x, s, ac) a = AddUnsigned(a, AddUnsigned(AddUnsigned(md5_I(b, c, d), x), ac)) a = RotateLeft(a, s) a = AddUnsigned(a, b) End Sub Private Function ConvertToWordArray(sMessage) Dim lMessageLength Dim lNumberOfWords Dim lWordArray() Dim lBytePosition Dim lByteCount Dim lWordCount Const MODULUS_BITS = 512 Const CONGRUENT_BITS = 448 lMessageLength = Len(sMessage) lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ BITS_TO_A_BYTE)) \ (MODULUS_BITS \ BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ BITS_TO_A_WORD) ReDim lWordArray(lNumberOfWords - 1) lBytePosition = 0 lByteCount = 0 Do Until lByteCount >= lMessageLength lWordCount = lByteCount \ BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(Asc(Mid(sMessage, lByteCount + 1, 1)), lBytePosition) lByteCount = lByteCount + 1 Loop lWordCount = lByteCount \ BYTES_TO_A_WORD lBytePosition = (lByteCount Mod BYTES_TO_A_WORD) * BITS_TO_A_BYTE lWordArray(lWordCount) = lWordArray(lWordCount) Or LShift(&H80, lBytePosition) lWordArray(lNumberOfWords - 2) = LShift(lMessageLength, 3) lWordArray(lNumberOfWords - 1) = RShift(lMessageLength, 29) ConvertToWordArray = lWordArray End Function Private Function WordToHex(lValue) Dim lByte Dim lCount For lCount = 0 To 3 lByte = RShift(lValue, lCount * BITS_TO_A_BYTE) And m_lOnBits(BITS_TO_A_BYTE - 1) WordToHex = WordToHex & Right("0" & Hex(lByte), 2) Next End Function Public Function MD5(sMessage) m_lOnBits(0) = CLng(1) m_lOnBits(1) = CLng(3) m_lOnBits(2) = CLng(7) m_lOnBits(3) = CLng(15) m_lOnBits(4) = CLng(31) m_lOnBits(5) = CLng(63) m_lOnBits(6) = CLng(127) m_lOnBits(7) = CLng(255) m_lOnBits(8) = CLng(511) m_lOnBits(9) = CLng(1023) m_lOnBits(10) = CLng(2047) m_lOnBits(11) = CLng(4095) m_lOnBits(12) = CLng(8191) m_lOnBits(13) = CLng(16383) m_lOnBits(14) = CLng(32767) m_lOnBits(15) = CLng(65535) m_lOnBits(16) = CLng(131071) m_lOnBits(17) = CLng(262143) m_lOnBits(18) = CLng(524287) m_lOnBits(19) = CLng(1048575) m_lOnBits(20) = CLng(2097151) m_lOnBits(21) = CLng(4194303) m_lOnBits(22) = CLng(8388607) m_lOnBits(23) = CLng(16777215) m_lOnBits(24) = CLng(33554431) m_lOnBits(25) = CLng(67108863) m_lOnBits(26) = CLng(134217727) m_lOnBits(27) = CLng(268435455) m_lOnBits(28) = CLng(536870911) m_lOnBits(29) = CLng(1073741823) m_lOnBits(30) = CLng(2147483647) m_l2Power(0) = CLng(1) m_l2Power(1) = CLng(2) m_l2Power(2) = CLng(4) m_l2Power(3) = CLng(8) m_l2Power(4) = CLng(16) m_l2Power(5) = CLng(32) m_l2Power(6) = CLng(64) m_l2Power(7) = CLng(128) m_l2Power(8) = CLng(256) m_l2Power(9) = CLng(512) m_l2Power(10) = CLng(1024) m_l2Power(11) = CLng(2048) m_l2Power(12) = CLng(4096) m_l2Power(13) = CLng(8192) m_l2Power(14) = CLng(16384) m_l2Power(15) = CLng(32768) m_l2Power(16) = CLng(65536) m_l2Power(17) = CLng(131072) m_l2Power(18) = CLng(262144) m_l2Power(19) = CLng(524288) m_l2Power(20) = CLng(1048576) m_l2Power(21) = CLng(2097152) m_l2Power(22) = CLng(4194304) m_l2Power(23) = CLng(8388608) m_l2Power(24) = CLng(16777216) m_l2Power(25) = CLng(33554432) m_l2Power(26) = CLng(67108864) m_l2Power(27) = CLng(134217728) m_l2Power(28) = CLng(268435456) m_l2Power(29) = CLng(536870912) m_l2Power(30) = CLng(1073741824) Dim x Dim k Dim AA Dim BB Dim CC Dim DD Dim a Dim b Dim c Dim d Const S11 = 7 Const S12 = 12 Const S13 = 17 Const S14 = 22 Const S21 = 5 Const S22 = 9 Const S23 = 14 Const S24 = 20 Const S31 = 4 Const S32 = 11 Const S33 = 16 Const S34 = 23 Const S41 = 6 Const S42 = 10 Const S43 = 15 Const S44 = 21 x = ConvertToWordArray(sMessage) a = &H67452301 b = &HEFCDAB89 c = &H98BADCFE d = &H10325476 For k = 0 To UBound(x) Step 16 AA = a BB = b CC = c DD = d md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478 md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756 md5_FF c, d, a, b, x(k + 2), S13, &H242070DB md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A md5_FF c, d, a, b, x(k + 6), S13, &HA8304613 md5_FF b, c, d, a, x(k + 7), S14, &HFD469501 md5_FF a, b, c, d, x(k + 8), S11, &H698098D8 md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1 md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE md5_FF a, b, c, d, x(k + 12), S11, &H6B901122 md5_FF d, a, b, c, x(k + 13), S12, &HFD987193 md5_FF c, d, a, b, x(k + 14), S13, &HA679438E md5_FF b, c, d, a, x(k + 15), S14, &H49B40821 md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562 md5_GG d, a, b, c, x(k + 6), S22, &HC040B340 md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51 md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D md5_GG d, a, b, c, x(k + 10), S22, &H2441453 md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681 md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8 md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6 md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6 md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87 md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905 md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8 md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9 md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942 md5_HH d, a, b, c, x(k + 8), S32, &H8771F681 md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122 md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44 md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9 md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60 md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70 md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6 md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085 md5_HH b, c, d, a, x(k + 6), S34, &H4881D05 md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039 md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5 md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8 md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665 md5_II a, b, c, d, x(k + 0), S41, &HF4292244 md5_II d, a, b, c, x(k + 7), S42, &H432AFF97 md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7 md5_II b, c, d, a, x(k + 5), S44, &HFC93A039 md5_II a, b, c, d, x(k + 12), S41, &H655B59C3 md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92 md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D md5_II b, c, d, a, x(k + 1), S44, &H85845DD1 md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0 md5_II c, d, a, b, x(k + 6), S43, &HA3014314 md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1 md5_II a, b, c, d, x(k + 4), S41, &HF7537E82 md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235 md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB md5_II b, c, d, a, x(k + 9), S44, &HEB86D391 a = AddUnsigned(a, AA) b = AddUnsigned(b, BB) c = AddUnsigned(c, CC) d = AddUnsigned(d, DD) Next MD5 = LCase(WordToHex(a) & WordToHex(b) & WordToHex(c) & WordToHex(d))    '32byte 'MD5 = LCase(WordToHex(b) & WordToHex(c)) 'I crop this to fit 16byte database password :D End Function %>
2.Send.asp
[u]复制代码[/u] 代码如下:
<!-- * ==================================================================== * * Send.asp 由网银在线技术支持提供 * * 本页面接收来自上页所有订单信息,并提交支付订单到网线在线支付平台.... * * * ==================================================================== --> <!--#include file="MD5.asp"--> <% '****************************************         v_mid = request("cid")                     ' 商户号,这里为测试商户号20000400,替换为自己的商户号即可     v_url = "" ' 商户自定义返回接收支付结果的页面 Receive.asp 为接收页面                                                      ' MD5密钥要跟订单提交页相同,如Send.asp里的 key = "test" ,修改""号内 test 为您的密钥     key = request("mykey")                                 ' 如果您还没有设置MD5密钥请登陆我们为您提供商户后台,地址:https://merchant3.chinabank.com.cn/                                                      ' 登陆后在上面的导航栏里可能找到“资料管理”,在资料管理的二级导航栏里有“MD5密钥设置”                                                      ' 建议您设置一个16位以上的密钥或更高,密钥最多64位,但设置16位已经足够了 '****************************************%> <% if request("orderid")<>"" then                                '判断是否有传递订单号          v_oid = request("orderid")      else          curdate = now()                                        ' 根据系统时间产生订单,格式:YYYYMMDD-v_mid-HMMSS          ymd = year(curdate)&month(curdate)&day(curdate)        ' 年月日          hms = hour(curdate)&minute(curdate)&second(curdate)    ' 分秒时          v_oid = ymd&"-"&v_mid&"-"&hms                            ' 推荐订单号构成格式为 年月日-商户号-小时分钟秒     end if     v_amount = request("totalmoney")        ' 订单金额     v_moneytype = "CNY"                    ' 币种     text = v_amount&v_moneytype&v_oid&v_mid&v_url&key    ' 拼凑加密串     v_md5info=Ucase(trim(md5(text)))                    ' 网银支付平台对MD5值只认大写字符串,所以小写的MD5值得转换为大写 '**********以下几项为可选信息,如果发送网银在线会保存此信息,使用和不使用都不影响支付!**************      v_rcvname = request("v_rcvname")            ' 收货人      v_rcvaddr = request("v_rcvaddr")            ' 收货地址         v_rcvtel = request("v_rcvtel")            ' 收货人电话      v_rcvpost = request("v_rcvpost")            ' 收货人邮编      v_rcvemail = request("v_rcvemail")        ' 收货人邮件      v_rcvmobile = request("v_rcvmobile")        ' 收货人手机号      v_ordername = request("v_ordername")        ' 订货人姓名      v_orderaddr = request("v_orderaddr")        ' 订货人地址      v_ordertel = request("v_ordertel")        ' 订货人电话      v_orderpost = request("v_orderpost")        ' 订货人邮编     v_orderemail = request("v_orderemail")        ' 订货人邮件     v_ordermobile = request("v_ordermobile")    ' 订货人手机号          remark1 = request("remark1")            ' 备注字段1          remark2 = request("remark2")            ' 备注字段2 %> <!--以下信息为标准的 HTML 格式 + ASP 语言 拼凑而成的 网银在线 支付接口标准演示页面 --> <html> <body onLoad="javascript:document.E_FORM.submit()"> <form action="https://pay3.chinabank.com.cn/PayGate" method="POST" name="E_FORM"> <!--以下几项为网上支付重要信息,信息必须正确无误,信息会影响支付进行!--> <input type="hidden" name="v_md5info" value="<%=v_md5info%>" size="100"> <input type="hidden" name="v_mid" value="<%=v_mid%>"> <input type="hidden" name="v_oid" value="<%=v_oid%>"> <input type="hidden" name="v_amount" value="<%=v_amount%>"> <input type="hidden" name="v_moneytype" value="<%=v_moneytype%>"> <input type="hidden" name="v_url" value="<%=v_url%>"> <!--以下几项项为网上支付完成后,随支付反馈信息一同传给信息接收页,在传输过程中内容不会改变,如:Receive.asp --> <input type="hidden" name="remark1" value="<%=remark1%>"> <input type="hidden" name="remark2" value="<%=remark2%>"> <!--以下几项与网上支付货款无关,只是用来记录客户信息,可以不用,使用和不使用都不影响支付 -->     <input type="hidden" name="v_rcvname" value="<%=v_rcvname%>">     <input type="hidden" name="v_rcvaddr" value="<%=v_rcvaddr%>">     <input type="hidden" name="v_rcvtel" value="<%=v_rcvtel%>">     <input type="hidden" name="v_rcvpost" value="<%=v_rcvpost%>">     <input type="hidden" name="v_rcvemail" value="<%=v_rcvemail%>">     <input type="hidden" name="v_rcvmobile" value="<%=v_rcvmobile%>">     <input type="hidden" name="v_ordername" value="<%=v_ordername%>">     <input type="hidden" name="v_orderaddr" value="<%=v_orderaddr%>">     <input type="hidden" name="v_ordertel" value="<%=v_ordertel%>">     <input type="hidden" name="v_orderpost" value="<%=v_orderpost%>">     <input type="hidden" name="v_orderemail" value="<%=v_orderemail%>">     <input type="hidden" name="v_ordermobile" value="<%=v_ordermobile%>"> </form> </body> </html>
tenpay 1.asp_md5.asp
[u]复制代码[/u] 代码如下:
<%     Private Const ASP_BITS_TO_A_BYTE = 8     Private Const ASP_BYTES_TO_A_WORD = 4     Private Const ASP_BITS_TO_A_WORD = 32     Private ASP_m_lOnBits(30)     Private ASP_m_l2Power(30)     Private Function ASP_LShift(lValue, iShiftBits)         If iShiftBits = 0 Then             ASP_LShift = lValue             Exit Function         ElseIf iShiftBits = 31 Then             If lValue And 1 Then                 ASP_LShift = &H80000000             Else                 ASP_LShift = 0             End If             Exit Function         ElseIf iShiftBits < 0 Or iShiftBits > 31 Then             Err.Raise 6         End If         If (lValue And ASP_m_l2Power(31 - iShiftBits)) Then             ASP_LShift = ((lValue And ASP_m_lOnBits(31 - (iShiftBits + 1))) * ASP_m_l2Power(iShiftBits)) Or &H80000000         Else             ASP_LShift = ((lValue And ASP_m_lOnBits(31 - iShiftBits)) * ASP_m_l2Power(iShiftBits))         End If     End Function     Private Function ASP_Str2binold(varstr)         ASP_Str2binold=""          For i=1 To Len(varstr)              varchar=mid(varstr,i,1)              varasc = Asc(varchar)              If varasc<0 Then                 varasc = varasc + 65535              End If              If varasc>255 Then                 varlow = Left(Hex(Asc(varchar)),2)                 varhigh = right(Hex(Asc(varchar)),2)                 ASP_Str2binold = ASP_Str2binold & chrB("&H" & varlow) & chrB("&H" & varhigh)              Else                 ASP_Str2binold = ASP_Str2binold & chrB(AscB(varchar))              End If          Next     End Function     Private Function ASP_Str2bin(varstr)         ASP_Str2bin=""          For i=1 To Len(varstr)              varchar=mid(varstr,i,1)              code = Server.UrlEncode(varchar)              if len(code) = 1 then              ASP_Str2bin = ASP_Str2bin & chrB(AscB(code))              else                 codearr = split(code,"%")                 for j=1 to ubound(codearr)                  ASP_Str2bin = ASP_Str2bin & chrB("&H" & codearr(j))                 next              End If          Next     End Function     Private Function ASP_RShift(lValue, iShiftBits)         If iShiftBits = 0 Then             ASP_RShift = lValue             Exit Function         ElseIf iShiftBits = 31 Then             If lValue And &H80000000 Then                 ASP_RShift = 1             Else                 ASP_RShift = 0             End If             Exit Function         ElseIf iShiftBits < 0 Or iShiftBits > 31 Then             Err.Raise 6         End If         ASP_RShift = (lValue And &H7FFFFFFE) \ ASP_m_l2Power(iShiftBits)         If (lValue And &H80000000) Then             ASP_RShift = (ASP_RShift Or (&H40000000 \ ASP_m_l2Power(iShiftBits - 1)))         End If     End Function     Private Function ASP_RotateLeft(lValue, iShiftBits)         ASP_RotateLeft = ASP_LShift(lValue, iShiftBits) Or ASP_RShift(lValue, (32 - iShiftBits))     End Function     Private Function ASP_AddUnsigned(lX, lY)         Dim lX4         Dim lY4         Dim lX8         Dim lY8         Dim lResult         lX8 = lX And &H80000000         lY8 = lY And &H80000000         lX4 = lX And &H40000000         lY4 = lY And &H40000000         lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)         If lX4 And lY4 Then             lResult = lResult Xor &H80000000 Xor lX8 Xor lY8         ElseIf lX4 Or lY4 Then             If lResult And &H40000000 Then                 lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8             Else                 lResult = lResult Xor &H40000000 Xor lX8 Xor lY8             End If         Else             lResult = lResult Xor lX8 Xor lY8         End If         ASP_AddUnsigned = lResult     End Function     Private Function ASP_md5_F(x, y, z)         ASP_md5_F = (x And y) Or ((Not x) And z)     End Function     Private Function ASP_md5_G(x, y, z)         ASP_md5_G = (x And z) Or (y And (Not z))     End Function     Private Function ASP_md5_H(x, y, z)         ASP_md5_H = (x Xor y Xor z)     End Function     Private Function ASP_md5_I(x, y, z)         ASP_md5_I = (y Xor (x Or (Not z)))     End Function     Private Sub ASP_md5_FF(a, b, c, d, x, s, ac)         a = ASP_AddUnsigned(a, ASP_AddUnsigned(ASP_AddUnsigned(ASP_md5_F(b, c, d), x), ac))         a = ASP_RotateLeft(a, s)         a = ASP_AddUnsigned(a, b)     End Sub     Private Sub ASP_md5_GG(a, b, c, d, x, s, ac)         a = ASP_AddUnsigned(a, ASP_AddUnsigned(ASP_AddUnsigned(ASP_md5_G(b, c, d), x), ac))         a = ASP_RotateLeft(a, s)         a = ASP_AddUnsigned(a, b)     End Sub     Private Sub ASP_md5_HH(a, b, c, d, x, s, ac)         a = ASP_AddUnsigned(a, ASP_AddUnsigned(ASP_AddUnsigned(ASP_md5_H(b, c, d), x), ac))         a = ASP_RotateLeft(a, s)         a = ASP_AddUnsigned(a, b)     End Sub     Private Sub ASP_md5_II(a, b, c, d, x, s, ac)         a = ASP_AddUnsigned(a, ASP_AddUnsigned(ASP_AddUnsigned(ASP_md5_I(b, c, d), x), ac))         a = ASP_RotateLeft(a, s)         a = ASP_AddUnsigned(a, b)     End Sub     Private Function ASP_ConvertToWordArray(sMessage)         Dim lMessageLength         Dim lNumberOfWords         Dim lWordArray()         Dim lBytePosition         Dim lByteCount         Dim lWordCount         Const MODULUS_BITS = 512         Const CONGRUENT_BITS = 448         lMessageLength = LenB(sMessage)         lNumberOfWords = (((lMessageLength + ((MODULUS_BITS - CONGRUENT_BITS) \ ASP_BITS_TO_A_BYTE)) \ (MODULUS_BITS \ ASP_BITS_TO_A_BYTE)) + 1) * (MODULUS_BITS \ ASP_BITS_TO_A_WORD)         ReDim lWordArray(lNumberOfWords - 1)         lBytePosition = 0         lByteCount = 0         Do Until lByteCount >= lMessageLength             lWordCount = lByteCount \ ASP_BYTES_TO_A_WORD             lBytePosition = (lByteCount Mod ASP_BYTES_TO_A_WORD) * ASP_BITS_TO_A_BYTE             lWordArray(lWordCount) = lWordArray(lWordCount) Or ASP_LShift(AscB(MidB(sMessage, lByteCount + 1, 1)), lBytePosition)             lByteCount = lByteCount + 1         Loop         lWordCount = lByteCount \ ASP_BYTES_TO_A_WORD         lBytePosition = (lByteCount Mod ASP_BYTES_TO_A_WORD) * ASP_BITS_TO_A_BYTE         lWordArray(lWordCount) = lWordArray(lWordCount) Or ASP_LShift(&H80, lBytePosition)         lWordArray(lNumberOfWords - 2) = ASP_LShift(lMessageLength, 3)         lWordArray(lNumberOfWords - 1) = ASP_RShift(lMessageLength, 29)         ASP_ConvertToWordArray = lWordArray     End Function     Private Function ASP_WordToHex(lValue)         Dim lByte         Dim lCount         For lCount = 0 To 3             lByte = ASP_RShift(lValue, lCount * ASP_BITS_TO_A_BYTE) And ASP_m_lOnBits(ASP_BITS_TO_A_BYTE - 1)             ASP_WordToHex = ASP_WordToHex & Right("0" & Hex(lByte), 2)         Next     End Function     Public Function ASP_MD5(sMessage)         ASP_m_lOnBits(0) = CLng(1)         ASP_m_lOnBits(1) = CLng(3)         ASP_m_lOnBits(2) = CLng(7)         ASP_m_lOnBits(3) = CLng(15)         ASP_m_lOnBits(4) = CLng(31)         ASP_m_lOnBits(5) = CLng(63)         ASP_m_lOnBits(6) = CLng(127)         ASP_m_lOnBits(7) = CLng(255)         ASP_m_lOnBits(8) = CLng(511)         ASP_m_lOnBits(9) = CLng(1023)         ASP_m_lOnBits(10) = CLng(2047)         ASP_m_lOnBits(11) = CLng(4095)         ASP_m_lOnBits(12) = CLng(8191)         ASP_m_lOnBits(13) = CLng(16383)         ASP_m_lOnBits(14) = CLng(32767)         ASP_m_lOnBits(15) = CLng(65535)         ASP_m_lOnBits(16) = CLng(131071)         ASP_m_lOnBits(17) = CLng(262143)         ASP_m_lOnBits(18) = CLng(524287)         ASP_m_lOnBits(19) = CLng(1048575)         ASP_m_lOnBits(20) = CLng(2097151)         ASP_m_lOnBits(21) = CLng(4194303)         ASP_m_lOnBits(22) = CLng(8388607)         ASP_m_lOnBits(23) = CLng(16777215)         ASP_m_lOnBits(24) = CLng(33554431)         ASP_m_lOnBits(25) = CLng(67108863)         ASP_m_lOnBits(26) = CLng(134217727)         ASP_m_lOnBits(27) = CLng(268435455)         ASP_m_lOnBits(28) = CLng(536870911)         ASP_m_lOnBits(29) = CLng(1073741823)         ASP_m_lOnBits(30) = CLng(2147483647)         ASP_m_l2Power(0) = CLng(1)         ASP_m_l2Power(1) = CLng(2)         ASP_m_l2Power(2) = CLng(4)         ASP_m_l2Power(3) = CLng(8)         ASP_m_l2Power(4) = CLng(16)         ASP_m_l2Power(5) = CLng(32)         ASP_m_l2Power(6) = CLng(64)         ASP_m_l2Power(7) = CLng(128)         ASP_m_l2Power(8) = CLng(256)         ASP_m_l2Power(9) = CLng(512)         ASP_m_l2Power(10) = CLng(1024)         ASP_m_l2Power(11) = CLng(2048)         ASP_m_l2Power(12) = CLng(4096)         ASP_m_l2Power(13) = CLng(8192)         ASP_m_l2Power(14) = CLng(16384)         ASP_m_l2Power(15) = CLng(32768)         ASP_m_l2Power(16) = CLng(65536)         ASP_m_l2Power(17) = CLng(131072)         ASP_m_l2Power(18) = CLng(262144)         ASP_m_l2Power(19) = CLng(524288)         ASP_m_l2Power(20) = CLng(1048576)         ASP_m_l2Power(21) = CLng(2097152)         ASP_m_l2Power(22) = CLng(4194304)         ASP_m_l2Power(23) = CLng(8388608)         ASP_m_l2Power(24) = CLng(16777216)         ASP_m_l2Power(25) = CLng(33554432)         ASP_m_l2Power(26) = CLng(67108864)         ASP_m_l2Power(27) = CLng(134217728)         ASP_m_l2Power(28) = CLng(268435456)         ASP_m_l2Power(29) = CLng(536870912)         ASP_m_l2Power(30) = CLng(1073741824)                  Dim x         Dim k         Dim AA         Dim BB         Dim CC         Dim DD         Dim a         Dim b         Dim c         Dim d         Const S11 = 7         Const S12 = 12         Const S13 = 17         Const S14 = 22         Const S21 = 5         Const S22 = 9         Const S23 = 14         Const S24 = 20         Const S31 = 4         Const S32 = 11         Const S33 = 16         Const S34 = 23         Const S41 = 6         Const S42 = 10         Const S43 = 15         Const S44 = 21         x = ASP_ConvertToWordArray(ASP_Str2bin(sMessage))         a = &H67452301         b = &HEFCDAB89         c = &H98BADCFE         d = &H10325476         For k = 0 To UBound(x) Step 16             AA = a             BB = b             CC = c             DD = d             ASP_md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478             ASP_md5_FF d, a, b, c, x(k + 1), S12, &HE8C7B756             ASP_md5_FF c, d, a, b, x(k + 2), S13, &H242070DB             ASP_md5_FF b, c, d, a, x(k + 3), S14, &HC1BDCEEE             ASP_md5_FF a, b, c, d, x(k + 4), S11, &HF57C0FAF             ASP_md5_FF d, a, b, c, x(k + 5), S12, &H4787C62A             ASP_md5_FF c, d, a, b, x(k + 6), S13, &HA8304613             ASP_md5_FF b, c, d, a, x(k + 7), S14, &HFD469501             ASP_md5_FF a, b, c, d, x(k + 8), S11, &H698098D8             ASP_md5_FF d, a, b, c, x(k + 9), S12, &H8B44F7AF             ASP_md5_FF c, d, a, b, x(k + 10), S13, &HFFFF5BB1             ASP_md5_FF b, c, d, a, x(k + 11), S14, &H895CD7BE             ASP_md5_FF a, b, c, d, x(k + 12), S11, &H6B901122             ASP_md5_FF d, a, b, c, x(k + 13), S12, &HFD987193             ASP_md5_FF c, d, a, b, x(k + 14), S13, &HA679438E             ASP_md5_FF b, c, d, a, x(k + 15), S14, &H49B40821             ASP_md5_GG a, b, c, d, x(k + 1), S21, &HF61E2562             ASP_md5_GG d, a, b, c, x(k + 6), S22, &HC040B340             ASP_md5_GG c, d, a, b, x(k + 11), S23, &H265E5A51             ASP_md5_GG b, c, d, a, x(k + 0), S24, &HE9B6C7AA             ASP_md5_GG a, b, c, d, x(k + 5), S21, &HD62F105D             ASP_md5_GG d, a, b, c, x(k + 10), S22, &H2441453             ASP_md5_GG c, d, a, b, x(k + 15), S23, &HD8A1E681             ASP_md5_GG b, c, d, a, x(k + 4), S24, &HE7D3FBC8             ASP_md5_GG a, b, c, d, x(k + 9), S21, &H21E1CDE6             ASP_md5_GG d, a, b, c, x(k + 14), S22, &HC33707D6             ASP_md5_GG c, d, a, b, x(k + 3), S23, &HF4D50D87             ASP_md5_GG b, c, d, a, x(k + 8), S24, &H455A14ED             ASP_md5_GG a, b, c, d, x(k + 13), S21, &HA9E3E905             ASP_md5_GG d, a, b, c, x(k + 2), S22, &HFCEFA3F8             ASP_md5_GG c, d, a, b, x(k + 7), S23, &H676F02D9             ASP_md5_GG b, c, d, a, x(k + 12), S24, &H8D2A4C8A             ASP_md5_HH a, b, c, d, x(k + 5), S31, &HFFFA3942             ASP_md5_HH d, a, b, c, x(k + 8), S32, &H8771F681             ASP_md5_HH c, d, a, b, x(k + 11), S33, &H6D9D6122             ASP_md5_HH b, c, d, a, x(k + 14), S34, &HFDE5380C             ASP_md5_HH a, b, c, d, x(k + 1), S31, &HA4BEEA44             ASP_md5_HH d, a, b, c, x(k + 4), S32, &H4BDECFA9             ASP_md5_HH c, d, a, b, x(k + 7), S33, &HF6BB4B60             ASP_md5_HH b, c, d, a, x(k + 10), S34, &HBEBFBC70             ASP_md5_HH a, b, c, d, x(k + 13), S31, &H289B7EC6             ASP_md5_HH d, a, b, c, x(k + 0), S32, &HEAA127FA             ASP_md5_HH c, d, a, b, x(k + 3), S33, &HD4EF3085             ASP_md5_HH b, c, d, a, x(k + 6), S34, &H4881D05             ASP_md5_HH a, b, c, d, x(k + 9), S31, &HD9D4D039             ASP_md5_HH d, a, b, c, x(k + 12), S32, &HE6DB99E5             ASP_md5_HH c, d, a, b, x(k + 15), S33, &H1FA27CF8             ASP_md5_HH b, c, d, a, x(k + 2), S34, &HC4AC5665             ASP_md5_II a, b, c, d, x(k + 0), S41, &HF4292244             ASP_md5_II d, a, b, c, x(k + 7), S42, &H432AFF97             ASP_md5_II c, d, a, b, x(k + 14), S43, &HAB9423A7             ASP_md5_II b, c, d, a, x(k + 5), S44, &HFC93A039             ASP_md5_II a, b, c, d, x(k + 12), S41, &H655B59C3             ASP_md5_II d, a, b, c, x(k + 3), S42, &H8F0CCC92             ASP_md5_II c, d, a, b, x(k + 10), S43, &HFFEFF47D             ASP_md5_II b, c, d, a, x(k + 1), S44, &H85845DD1             ASP_md5_II a, b, c, d, x(k + 8), S41, &H6FA87E4F             ASP_md5_II d, a, b, c, x(k + 15), S42, &HFE2CE6E0             ASP_md5_II c, d, a, b, x(k + 6), S43, &HA3014314             ASP_md5_II b, c, d, a, x(k + 13), S44, &H4E0811A1             ASP_md5_II a, b, c, d, x(k + 4), S41, &HF7537E82             ASP_md5_II d, a, b, c, x(k + 11), S42, &HBD3AF235             ASP_md5_II c, d, a, b, x(k + 2), S43, &H2AD7D2BB             ASP_md5_II b, c, d, a, x(k + 9), S44, &HEB86D391             a = ASP_AddUnsigned(a, AA)             b = ASP_AddUnsigned(b, BB)             c = ASP_AddUnsigned(c, CC)             d = ASP_AddUnsigned(d, DD)         Next         ASP_MD5 = LCase(ASP_WordToHex(a) & ASP_WordToHex(b) & ASP_WordToHex(c) & ASP_WordToHex(d))     End Function '使用方法是 md5 ("字符串") 下面是使用示范 'Response.Write "ASP_MD5('a')的加密结果为[" & ASP_MD5 ("a") & "]<br>" 'Response.Write "ASP_MD5('b')的加密结果为[" & ASP_MD5 ("b") & "]" %>
2.send.asp
[u]复制代码[/u] 代码如下:
<!-- #include file="asp_md5.asp" --> <%     Dim merchantId     Dim keyValue merchantId = request("cid")        '''商户编号 keyValue = request("mykey")        '''商户密钥 orderid = request("orderid")        '''订单编号 amount = request("totalmoney")        '''订单金额 %> <html> <title>财付通支付</title> <meta http-equiv="Cache-Control" content="no-cache"/> <body onLoad="javascript:document.frm.submit()">     <% Response.Charset="GB2312" %> <%     ' 获取服务器日期,格式YYYYMMDD     Function CFTGetServerDate         Dim strTmp, iYear,iMonth,iDate         iYear = Year(Date)         iMonth = Month(Date)         iDate = Day(Date)         strTmp = CStr(iYear)         If iMonth < 10 Then             strTmp = strTmp & "0" & Cstr(iMonth)         Else             strTmp = strTmp & Cstr(iMonth)         End If         If iDate < 10 Then             strTmp = strTmp & "0" & Cstr(iDate)         Else             strTmp = strTmp & Cstr(iDate)         End If         CFTGetServerDate = strTmp     End Function     Dim md5_sign     spid        = merchantId         ' 这里替换为您的实际商户号     sp_key    = keyValue    ' sp_key是32位商户密钥, 请替换为您的实际密钥     ' 下面是请求参数     cmdno        = "1"                ' 财付通支付为"1" (当前只支持 cmdno=1)         bill_date    = CFTGetServerDate    ' 交易日期 (yyyymmdd)         bank_type    = "0"                ' 银行类型:    0        财付通                                     '            1001    招商银行                                     '            1002    中国工商银行                                     '            1003    中国建设银行                                     '            1004    上海浦东发展银行                                     '            1005    中国农业银行                                     '            1006    中国民生银行                   &
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部