⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 payonline.asp

📁 个人网站比较简短
💻 ASP
📖 第 1 页 / 共 4 页
字号:
        </tr>
      </table></td>
  </tr>
  <tr>
    <td class=main_shadow></td>
  </tr>
</table>
</form>
<%
End Sub


Sub Step2()
    Dim vMoney
    Dim v_amount, v_mid, v_url, v_oid, v_moneytype, v_orderstatus, key_key, md5string
    Dim v_ymd, v_hms
    Dim v_ShowResultUrl
    v_ymd = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2)
    v_hms = Right("0" & Hour(Time), 2) & Right("0" & Minute(Time), 2) & Right("0" & Second(Time), 2)
    vMoney = Trim(Request.Form("vMoney"))

    PlatformID = Trim(Request("PlatformID"))
    If PlatformID = "" Then
        FoundErr = True
        ErrMsg = ErrMsg & "<li>请指定在线支付平台ID</li>"
    Else
        PlatformID = PE_CLng(PlatformID)
    End If

    If FoundErr = True Then Exit Sub

    Dim rsPayPlatform
    Set rsPayPlatform = Conn.Execute("select * from PE_PayPlatform where PlatformID=" & PlatformID & "")
    If rsPayPlatform.BOF And rsPayPlatform.EOF Then
        FoundErr = True
        ErrMsg = ErrMsg & "<li>找不到指定的在线支付平台!</li>"
    Else
        PlatformName = rsPayPlatform("ShowName")
        AccountsID = rsPayPlatform("AccountsID")
        MD5Key = rsPayPlatform("MD5Key")
        Rate = rsPayPlatform("Rate")
        PlusPoundage = rsPayPlatform("PlusPoundage")
    End If
    Set rsPayPlatform = Nothing
    
    If OrderFormID > 0 Then
        vMoney = FormatNumber(dblMoneyNeedPay, 2, vbTrue, vbFalse, vbTrue)
         'vMoney=dblMoneyTotal
    Else
        vMoney = Trim(Request("vMoney"))
    End If
    If vMoney = "" Then
        FoundErr = True
        ErrMsg = ErrMsg & "<li>请输入划款金额!</li>"
    Else
        vMoney = Abs(PE_CDbl(vMoney))
        If vMoney < 0.01 Then
            FoundErr = True
            ErrMsg = ErrMsg & "<li>每次划款金额不能低于0.01元!</li>"
        Else
            If PlatformID = 11 Then
                If PlusPoundage = True Then
                    v_amount = Round(vMoney + vMoney * (Rate / 100), 1) '手续费
                Else
                    v_amount = vMoney
                End If
                Dim intMoney
                intMoney = Int(v_amount)
                If intMoney < v_amount Then
                    v_amount = intMoney + 1
                Else
                    v_amount = intMoney    '快钱神州行支付金额为整数值
                End If
            Else
                vMoney = Round(vMoney, 2)
                If PlusPoundage = True Then
                    v_amount = Round(vMoney + vMoney * (Rate / 100), 2) '手续费
                Else
                    v_amount = vMoney
                End If
            End If
        End If
    End If

    If FoundErr = True Then Exit Sub


    '得到PaymentID
    Dim PaymentID, PaymentNum
    Dim rsPayment, sqlPayment
    Dim trs, strHiddenField
    
    PaymentNum = Prefix_PaymentNum & v_ymd & v_hms
    
    PaymentID = GetNewID("PE_Payment", "PaymentID")
    sqlPayment = "select top 1 * from PE_Payment"
    Set rsPayment = Server.CreateObject("adodb.recordset")
    rsPayment.Open sqlPayment, Conn, 1, 3
    rsPayment.AddNew
    rsPayment("PaymentID") = PaymentID
    rsPayment("UserName") = UserName
    rsPayment("OrderFormID") = OrderFormID
    rsPayment("PaymentNum") = PaymentNum
    rsPayment("eBankID") = PlatformID
    rsPayment("MoneyPay") = vMoney
    rsPayment("MoneyTrue") = v_amount
    rsPayment("PayTime") = Now()
    rsPayment("Status") = 1
    rsPayment("eBankInfo") = ""
    rsPayment("Remark") = ""
    rsPayment.Update
    rsPayment.Close
    Set rsPayment = Nothing
    

    v_mid = AccountsID
    v_moneytype = "0"               '0为rmb 1为dollor
    v_orderstatus = "1"             '0未配齐 1为配齐
    v_url = "http://" & Trim(Request.ServerVariables("HTTP_HOST")) & Trim(Request.ServerVariables("SCRIPT_NAME"))
    v_ShowResultUrl = Left(v_url, InStrRev(v_url, "/")) & "ShowResult.asp"
    v_url = Left(v_url, InStrRev(v_url, "/")) & "PayResult" & PlatformID & ".asp"

    v_oid = PaymentNum
    v_amount = FormatNumber(v_amount, 2, vbTrue, vbFalse, vbFalse)

    Select Case PlatformID
    Case 1 '网银在线
        PayGateUrl = "https://pay3.chinabank.com.cn/PayGate"
        v_oid = PaymentNum
        md5string = UCase(Trim(MD5(v_amount & v_moneytype & v_oid & v_mid & v_url & MD5Key, 32)))
        strHiddenField = strHiddenField & "<input type='hidden' name='v_md5info' value='" & md5string & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_mid' value='" & v_mid & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_oid' value='" & v_oid & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_amount' value='" & v_amount & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_moneytype'  value='" & v_moneytype & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_url' value='" & v_url & "'>" & vbCrLf
    Case 2  '中国在线支付网
        PayGateUrl = "http://www.ipay.cn/4.0/bank.shtml"
        v_oid = v_ymd & v_hms
        md5string = LCase(MD5(v_mid & v_oid & v_amount & "test@Ipay.com.cn13800138000" & MD5Key, 32))
        strHiddenField = strHiddenField & "<input type='hidden' name='v_mid' value='" & v_mid & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_oid' value='" & v_oid & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_amount' value='" & v_amount & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_email' value='test@Ipay.com.cn'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_mobile' value='13800138000'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_md5'    value='" & md5string & "'>" & vbCrLf
        strHiddenField = strHiddenField & "<input type='hidden' name='v_url' value='" & v_url & "'>" & vbCrLf
    Case 3  '上海环迅
        PayGateUrl = "http://pay.ips.com.cn/ipayment.aspx"   '正式接口
        'PayGateUrl = "http://pay.ips.net.cn/ipayment.aspx"   '测试接口
        md5string = LCase(MD5(v_oid & v_amount & v_ymd & "RMB" & MD5Key, 32))
        strHiddenField = strHiddenField & "<input type='hidden' name='mer_code' value='" & v_mid & "'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='billNo' value='" & v_oid & "'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='amount' value='" & v_amount & "'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='date' value='" & v_ymd & "'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='lang' value='GB'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='Gateway_type' value='01'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='Currency_Type' value='RMB'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='Merchanturl' value='" & v_url & "'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='OrderEncodeType' value='2'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='RetEncodeType' value='12'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='RetType' value='0'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='SignMD5' value='" & md5string & "'>"
        strHiddenField = strHiddenField & "<input type='hidden' name='ServerUrl' value=''>"
    Case 4  '中国银联广州分公司
        PayGateUrl = "http://218.19.140.170/Bin/Scripts/OpenVendor/Gnete/V34/GetOvOrder.asp"

        Dim RcvCertPath, SendCertPath, SendCertPWD, MerId, OrderNo, OrderAmount, CurrCode, CallBackUrl, ResultMode
        Dim Reserved01, Reserved02, SourceText, obj, EncryptedMsg, SignedMsg, bolRet, nPayStat
        
        MerId = v_mid                           '商户ID参数
        OrderNo = v_oid            '商户订单号
        OrderAmount = v_amount    '订单金额,格式:元.角分
        CurrCode = "CNY"          '货币代码,值为:CNY
        CallBackUrl = v_url    '支付结果接收URL
        ResultMode = "0"                '支付结果返回方式(0-成功和失败支付结果均返回;1-仅返回成功支付结果)
        Reserved01 = ""                 '保留域1
        Reserved02 = ""                 '保留域2
        
        SendCertPath = "c:\certs\MERCHANT.pfx"          '发送方证书路径(商户证书)
        RcvCertPath = "c:\certs\GNETEWEB-TEST.cer"          '接收方证书路径(银联证书)
        SendCertPWD = "12345678"      '发送方证书密码(商户证书)
        
        '组合成订单原始数据
        SourceText = "MerId=" & MerId & "&" & _
                  "OrderNo=" & OrderNo & "&" & _
                  "OrderAmount=" & OrderAmount & "&" & _
                  "CurrCode=" & CurrCode & "&" & _
                  "CallBackUrl=" & CallBackUrl & "&" & _
                  "ResultMode=" & ResultMode & "&" & _
                  "Reserved01=" & Reserved01 & "&" & _
                  "Reserved02=" & Reserved02
        
        Set obj = Server.CreateObject("OpenVendorV34.NetTran")
    
        '使用接收方证书对订单原始数据进行加密
        If obj.EncryptMsg(SourceText, RcvCertPath) = 0 Then
            EncryptedMsg = obj.LastResult
        Else
            Response.Write obj.LastErrMsg
            Exit Sub
        End If
        
        '使用发送方证书对订单原始数据进行签名
        If obj.SignMsg(SourceText, SendCertPath, SendCertPWD) = 0 Then
            SignedMsg = obj.LastResult
        Else
            Response.Write obj.LastErrMsg

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -