📄 cls_payment.asp
字号:
Private Sub Payment_nps()
On Error Resume Next
Dim digest, OrderMessage
Dim m_url, m_orderid, m_oamount, modate, m_ocomment
Dim m_ocurrency, m_language, s_postcode, s_tel, s_eml, r_postcode, r_tel, r_eml
m_orderid = Trim(sOrderid) '---- 定单号
m_oamount = sPaymoney '---- 金 额
m_url = sReturnurl '---- 返回URL
m_ocurrency = sMoneytype '---- 币 种
m_language = sLanguage '---- 语言选择
s_postcode = sPostcode '---- 消费者邮码
s_tel = sTelephone '---- 消费者邮码
s_eml = sEmail '---- 消费者邮件
r_postcode = sPostcode '---- 收货人电话
r_tel = sTelephone '---- 收货人电话
r_eml = sEmail '---- 收货人邮件
m_ocomment = sComment '---- 备 注
modate = Date '---- 日 期
OrderMessage = sPaymentid & m_orderid & m_oamount & m_ocurrency & m_url & m_language & s_postcode & s_tel & s_eml & r_postcode & r_tel & r_eml & modate & sPaymentkey
digest = UCase(Trim(vmd.MD5(OrderMessage,True)))
PaymentContent = "<table> <tr>" & vbNewLine
PaymentContent = PaymentContent & "<form method=""post"" action=""https://payment.nps.cn/VirReceiveMerchantAction.do"" name=""payform"" target=""_blank"">" & vbNewLine
PaymentContent = PaymentContent & " <td>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""M_ID"" value=""" & sPaymentid & """>" & vbNewLine '---- 商 家 号
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""MOrderID"" value=""" & m_orderid & """>" & vbNewLine '---- 订 单 号
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""MOAmount"" value=""" & m_oamount & """>" & vbNewLine '---- 订单金额
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""MOCurrency"" value=""" & m_ocurrency & """>" & vbNewLine '---- 币 种
PaymentContent = PaymentContent & "<input type=""hidden"" name=""M_URL"" value=""" & m_url & """>" & vbNewLine '---- 返回地址
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""M_Language"" value=""" & m_language & """>" & vbNewLine '---- 语言选择
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""S_Name"" value=""" & sConsignee & """>" & vbNewLine '---- 消费者姓名
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""S_Address"" value=""" & sAddress & """>" & vbNewLine '---- 消费者住址
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""S_PostCode"" value=""" & s_postcode & """>" & vbNewLine '---- 消费者邮码
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""S_Telephone"" value=""" & s_tel & """>" & vbNewLine '---- 消费者电话
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""S_Email"" value=""" & s_eml & """>" & vbNewLine '---- 消费者邮件
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""R_Name"" value=""" & sConsignee & """>" & vbNewLine '---- 收货人姓名
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""R_Address"" value=""" & sAddress & """>" & vbNewLine '---- 收货人住址
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""R_PostCode"" value=""" & r_postcode & """>" & vbNewLine '---- 收货人邮码
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""R_Telephone"" value=""" & r_tel & """>" & vbNewLine '---- 收货人电话
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""R_Email"" value=""" & r_eml & """>" & vbNewLine '---- 收货人邮件
PaymentContent = PaymentContent & "<input type=""hidden"" name=""MOComment"" value=""" & m_ocomment & """>" & vbNewLine '---- 备 注
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""MODate"" value=""" & modate & """>" & vbNewLine '---- 时间字段
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""State"" value=""" & sPstate & """>" & vbNewLine '---- 交易状态
PaymentContent = PaymentContent & "<input type=""hidden"" Name=""digestinfo"" value=""" & digest & """>" & vbNewLine '---- 签名认证
PaymentContent = PaymentContent & "<input Type=""submit"" Name=""submit"" value=""" & submit_value & """ class=""Button""> " & vbNewLine '---- 确认支付
PaymentContent = PaymentContent & " </td> </tr>" & vbNewLine
PaymentContent = PaymentContent & "</form>" & vbNewLine
PaymentContent = PaymentContent & "</table>" & vbNewLine
End Sub
'================================================
'过程名:payment_chinabank
'作 用:网银在线支付平台
'================================================
Private Sub Payment_chinabank()
On Error Resume Next
Dim v_mid, v_amount, v_oid, v_moneytype, style, v_url, remark1, remark2
Dim OrderMessage, v_md5info
Dim v_rcvname, v_rcvaddr, v_rcvtel, v_rcvpost, v_ordername, v_orderemail
v_mid = sPaymentid '---- 商 家 号
v_amount = sPaymoney '---- 金 额
v_oid = Trim(sOrderid) '---- 定单号
v_moneytype = sMoneytype '---- 币 种
style = sPstate '---- 指网关模式0(普通),1(银行列表中带外卡)
v_url = sReturnurl '---- 返回URL
remark1 = sComment '---- 备 注1
remark2 = sTelephone '---- 备 注2
OrderMessage = v_amount & v_moneytype & v_oid & v_mid & v_url & sPaymentkey
v_md5info = UCase(Trim(vmd.MD5(OrderMessage,True))) '网银支付平台对MD5值只认大写字符串,所以小写的MD5值得转换为大写
'**********以下几项与网上支付货款无关,建议不用**************
v_rcvname = sConsignee '---- 收 货 人
v_rcvaddr = sAddress '---- 收货人地址
v_rcvtel = sTelephone '---- 收货人电话
v_rcvpost = sTelephone '---- 消费者邮码
v_ordername = sConsigner '---- 发 货 人
v_orderemail = sEmail '---- 收货人邮件
PaymentContent = "<table> <tr>" & vbNewLine
PaymentContent = PaymentContent & "<form method=""post"" action=""https://pay.chinabank.com.cn/select_bank"" name=""payform"" target=""_blank"">" & vbNewLine
PaymentContent = PaymentContent & " <td>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_md5info"" value=""" & v_md5info & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_mid"" value=""" & v_mid & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_oid"" value=""" & v_oid & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_amount"" value=""" & v_amount & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_moneytype"" value=""" & v_moneytype & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_url"" value=""" & v_url & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""style"" value=""" & style & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""remark1"" value=""" & remark1 & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""remark2"" value=""" & remark2 & """>" & vbNewLine
'----- 以下几项与网上支付货款无关,建议不用 ----
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_rcvname"" value=""" & v_rcvname & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_rcvaddr"" value=""" & v_rcvaddr & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_rcvtel"" value=""" & v_rcvtel & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_rcvpost"" value=""" & v_rcvpost & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_ordername"" value=""" & v_ordername & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""hidden"" name=""v_orderemail"" value=""" & v_orderemail & """>" & vbNewLine
PaymentContent = PaymentContent & "<input type=""submit"" name=""v_action"" value=""" & submit_value & """ class=""Button"">" & vbNewLine
PaymentContent = PaymentContent & " </td> </tr>" & vbNewLine
PaymentContent = PaymentContent & "</form>" & vbNewLine
PaymentContent = PaymentContent & "</table>" & vbNewLine
End Sub
'================================================
'过程名:ReceivePage
'作 用:在线支付返回页面
'================================================
Public Sub ReceivePage()
On Error Resume Next
If CInt(sPlatform) = 1 Then
Call Receive_nps
ElseIf CInt(sPlatform) = 2 Then
Call Receive_chinabank
Else
ErrNumber = 6
Exit Sub
End If
End Sub
Private Sub Receive_nps()
On Error Resume Next
Dim OrderMessage, md5text, BankPayCode, md5info
sPaymentid = Trim(Request("m_id")) '---- 商 家 号
sOrderid = Trim(Request("m_orderid")) '---- 定 单 号
sPaymoney = Trim(Request("m_oamount")) '---- 订单金额
sComment = Trim(Request("m_ocomment")) '---- 备注
sConsignee = Trim(Request("r_name")) '---- 收货人
sAddress = Trim(Request("r_addr")) '---- 收货人地址
sPostcode = Trim(Request("r_postcode")) '---- 收货人邮编
sTelephone = Trim(Request("r_tel")) '---- 收货人电话
sEmail = Trim(Request("r_eml")) '---- 收货人E-Mail
sConsigner = Trim(Request("s_name")) '---- 发货人
sPstate = Trim(Request("m_status")) '---- 交易状态
sMoneytype = Trim(Request("m_ocurrency")) '---- 币种
md5info = Trim(Request("newmd5info")) '---- 签名认证
If Trim(Request("md5info")) = "" Then
ErrNumber = 3
Exit Sub
End If
OrderMessage = sPaymentid & sOrderid & sPaymoney & sPaymentkey & sPstate
md5text = Trim(vmd.MD5(OrderMessage,True))
If UCase(md5text) <> UCase(md5info) Then
ErrNumber = 4
Exit Sub
Else
If ChkNumeric(sPstate) = 2 Then
'---- 支付成功
ErrNumber = 0
Exit Sub
Else
ErrNumber = 4
Exit Sub
End If
End If
End Sub
Private Sub Receive_chinabank()
On Error Resume Next
Dim v_md5str, md5text, OrderMessage, BankPayCode
sPaymentid = sPaymentid '---- 商 家 号
sOrderid = Trim(Request("v_oid")) '---- 定 单 号
sPaymoney = Trim(Request("v_amount")) '---- 订单金额
sComment = Trim(Request("remark1")) '---- 备注
sConsignee = Trim(Request("v_rcvname")) '---- 收货人
sAddress = Trim(Request("v_rcvaddr")) '---- 收货人地址
sPostcode = Trim(Request("v_rcvpost")) '---- 收货人邮编
sTelephone = Trim(Request("remark2")) '---- 收货人电话
sEmail = Trim(Request("v_orderemail")) '---- 收货人E-Mail
sConsigner = Trim(Request("v_ordername")) '---- 发货人
sMoneytype = Trim(Request("v_moneytype")) '---- 币种
sPstate = Trim(Request("v_pstatus")) '---- 交易状态
v_md5str = Trim(Request("v_md5str"))
If Trim(Request("v_md5str")) = "" Then
ErrNumber = 3
Exit Sub
End If
OrderMessage = sOrderid & sPstate & sPaymoney & sMoneytype & sPaymentkey
md5text = Trim(vmd.MD5(OrderMessage,True))
If UCase(md5text) <> UCase(v_md5str) Then
ErrNumber = 4
Exit Sub
Else
If ChkNumeric(sPstate) = 20 Then
'---- 支付成功
ErrNumber = 0
Exit Sub
Else
'---- 支付失败
ErrNumber = 4
Exit Sub
End If
End If
End Sub
'=============================================================
'函数名:ReadPayMoney
'作 用:读取要支付的金钱
'参 数:money ----实际金钱
'返回值:加上手续费后的金钱
'=============================================================
Public Function ReadPayMoney(ByVal money, ByVal Reduce)
On Error Resume Next
If money = 0 Then
ReadPayMoney = 0
Exit Function
End If
Dim MoneyPercent, valPercent
MoneyPercent = mPercent / 100
If MoneyPercent = 0 Then
ReadPayMoney = money
Else
If CBool(Reduce) = True Then
valPercent = Round(money / (1 + 1 * MoneyPercent), 2)
ReadPayMoney = CCur(valPercent)
Else
valPercent = Round(money * MoneyPercent, 2)
ReadPayMoney = CCur(money + valPercent)
End If
End If
End Function
Public Function ChkNumeric(ByVal CHECK_ID)
If CHECK_ID <> "" And IsNumeric(CHECK_ID) Then _
CHECK_ID = CLng(CHECK_ID) _
Else _
CHECK_ID = 0
ChkNumeric = CHECK_ID
End Function
End Class
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -