userpay.asp

来自「现在好了」· ASP 代码 · 共 970 行 · 第 1/3 页

ASP
970
字号
		'加密字符串验证
		'重新生成加密字符串对照返回加密字符串
		Dim PayCodeEnCode
		PayCodeEnCode = Md5("dv" & Rs("O_PayCode") & ":" & Trim(Request("errorcode")) & ":" & Trim(Request("money")) & ":" & Dvbbs.CacheData(21,0),32)
		'Response.Write SignStr
		'Response.Write "<BR>"
		'Response.Write PayCodeEncode
		'response.end
		If PayCodeEncode <> retokerWord Then
			Response.redirect "showerr.asp?ErrCodes=<li>错误,订单校验失败。&action=OtherErr"
			Exit Sub
		End If
		'更新数据库资料
		'更新用户资料
		Dvbbs.Execute("Update Dv_User Set UserTicket = UserTicket + " & Dvbbs.Forum_ChanSetting(14) * UserInMoney & " Where UserName='"&Rs("O_UserName")&"'")
		If Dvbbs.UserID > 0 And Lcase(Dvbbs.MemberName)=Lcase(Rs("O_UserName")) Then
			Dim cUserInfo
			cUserInfo = Session(Dvbbs.CacheName & "UserID")
			cUserInfo(38)=cUserInfo(38) + cCur(Dvbbs.Forum_ChanSetting(14) * UserInMoney)
			Session(Dvbbs.CacheName & "UserID") = cUserInfo
		End If
		'更新订单状态
		Dvbbs.Execute("Update Dv_ChanOrders Set O_IsSuc=1,O_PayMoney="&UserInMoney&" Where O_ID = " & Rs("O_ID"))
	End If
	Rs.Close
	Set Rs=Nothing
	Emp_ChallengeWord
%>
<!--论坛操作成功信息-->
<br>
<table cellpadding=3 cellspacing=1 align=center class=tableborder1 style="width:75%">
<tr align=center>
<th width="100%">论坛成功信息
</td>
</tr>
<tr>
<td width="100%" class=tablebody1>
<b>操作成功:</b><br><br>
<li>成功,您本次兑换了 <B><font color=red><%=(Dvbbs.Forum_ChanSetting(14) * UserInMoney)%></font></B> 张论坛点券。
</td></tr>
<tr align=center><td width="100%" class=tablebody2>
<a href="usermanager.asp"> << 返回用户控制面板</a> &nbsp;&nbsp;||&nbsp;&nbsp; <a href="UserPay.asp?action=UserCenter"> 去把点券转换成论坛金币>></a> 
</td></tr>
</table><br>
<%
End Sub

Sub AliPay()
	Dim PayMoney
	PayMoney = Request("paymoney")
	If PayMoney = "" Or Not IsNumeric(PayMoney) Then
		Response.redirect "showerr.asp?ErrCodes=<li>错误,非法的付款参数。&action=OtherErr"
		Exit Sub
	End If
	If PayMoney < 2 Then
		Response.redirect "showerr.asp?ErrCodes=<li>错误,每笔订单金额最小为 <B>2</B> 元人民币。&action=iOtherErr"
		Exit Sub
	End If
	PayMoney = FormatNumber(PayMoney,2)

	'生成订单号:01+ForumID(9位)+yyyyMMddhhmmss+六位随机数
	'生成日期字串
	Dim NowTimes,PayMonth,PayDay,PayHour,PayMin,PaySe,PayDayStr,RandomizeStr,num1
	Dim PayCode,PayCodeEnCode
	NowTimes = Now()
	PayMonth = Month(NowTimes)
	If Len(PayMonth)=1 Then PayMonth = "0" & PayMonth
	PayDay = Day(NowTimes)
	If Len(PayDay)=1 Then PayDay = "0" & PayDay
	PayHour = Hour(NowTimes)
	If Len(PayHour)=1 Then PayHour = "0" & PayHour
	PayMin = Minute(NowTimes)
	If Len(PayMin)=1 Then PayMin = "0" & PayMin
	PaySe = Second(NowTimes)
	If Len(PaySe)=1 Then PaySe = "0" & PaySe
	PayDayStr = Year(NowTimes) & PayMonth & PayDay & PayHour & PayMin & PaySe
	'生成随机字串
	Randomize
	Do While Len(RandomizeStr)<5
		num1 = CStr(Chr((57-48)*rnd+48))
		RandomizeStr = RandomizeStr & num1
	Loop
	'Response.Write RandomizeStr
	'Response.Write "<BR>"
	'Response.Write PayDayStr
	PayCode = "01" & Dvbbs.Forum_ChanSetting(5) & PayDayStr & RandomizeStr

	'进入论坛订单库
	Dvbbs.Execute("InSert Into Dv_ChanOrders (O_type,O_Username,O_isApply,O_issuc,O_PayMoney,O_Paycode,O_AddTime) Values (1,'"&Dvbbs.MemberName&"',0,0,"&PayMoney&",'"&PayCode&"','"&NowTimes&"')")

	'提交到动网官方主服务器
%>
正在提交数据,如果您的论坛地址设置了URL转发,将不能正确传输信息,请稍后……
<form name="redir" action="<%=Dvbbs_Server_Url%>alipay_t1.aspx?action=pay" method="post">
<INPUT type=hidden name="username" value="<%=Dvbbs.MemberName%>">
<INPUT type=hidden name="paycode" value="<%=PayCode%>">
<INPUT type=hidden name="returnurl" value="<%=Dvbbs.Get_ScriptNameUrl%>UserPay.asp?action=alipay_return">
<INPUT type=hidden name="paymoney" value="<%=PayMoney%>">
</form>
<script LANGUAGE=javascript>
<!--
redir.submit();
//-->
</script>
<%
End Sub

'在线支付返回结果处理,不登陆也可执行
Sub AliPay_Return()
	'得到和判断返回参数
	Dim PayCode,SignStr,Success,UserInMoney
	PayCode = Replace(Request("paycode"),"'","")
	SignStr = Replace(Request("sign"),"'","")
	Success = Request("success")
	If PayCode = "" Or SignStr = "" Or Success = "" Or Not IsNumeric(Success) Then
		Response.redirect "showerr.asp?ErrCodes=<li>错误,非法的订单参数。&action=OtherErr"
		Exit Sub
	End If
	If Cint(Success) = 0 Then
		Response.redirect "showerr.asp?ErrCodes=<li>订单支付失败,请详细检查您的支付信息,<a href=""UserPay.asp"">重新进入支付页面</a>。&action=iOtherErr"
		Exit Sub
	End If

	'验证订单信息
	Dim Rs
	Set Rs = Dvbbs.Execute("Select * From Dv_ChanOrders Where O_IsSuc=0 And O_PayCode = '"&PayCode&"'")
	If Rs.Eof And Rs.Bof Then
		Response.redirect "showerr.asp?ErrCodes=<li>错误,找不到该订单信息或该订单已支付成功。&action=OtherErr"
		Exit Sub
	Else
		'加密字符串验证
		'重新生成加密字符串对照返回加密字符串
		Dim PayCodeEnCode
		PayCodeEnCode = Md5(Rs("O_PayCode") & ":" & Success & ":" & Rs("O_PayMoney") & ":" & Dvbbs.Forum_ChanSetting(6),32)
		'Response.Write SignStr
		'Response.Write "<BR>"
		'Response.Write PayCodeEncode
		'response.end
		If PayCodeEncode <> SignStr Then
			Response.redirect "showerr.asp?ErrCodes=<li>错误,订单校验失败。如银行支付已成功,请到未成功订单中找到该订单并选择重新获取结果。&action=OtherErr"
			Exit Sub
		End If
		'更新数据库资料
		UserInMoney = Rs("O_PayMoney")
		'更新用户资料
		Dvbbs.Execute("Update Dv_User Set UserTicket = UserTicket + " & Dvbbs.Forum_ChanSetting(14) * UserInMoney & " Where UserName='"&Rs("O_UserName")&"'")
		If Dvbbs.UserID > 0 And Lcase(Dvbbs.MemberName)=Lcase(Rs("O_UserName")) Then
			Dim cUserInfo
			cUserInfo = Session(Dvbbs.CacheName & "UserID")
			cUserInfo(38)=cUserInfo(38) + cCur(Dvbbs.Forum_ChanSetting(14) * UserInMoney)
			Session(Dvbbs.CacheName & "UserID") = cUserInfo
		End If
		'更新订单状态
		Dvbbs.Execute("Update Dv_ChanOrders Set O_IsSuc=1 Where O_ID = " & Rs("O_ID"))
	End If
	Rs.Close
	Set Rs=Nothing
%>
<!--论坛操作成功信息-->
<br>
<table cellpadding=3 cellspacing=1 align=center class=tableborder1 style="width:75%">
<tr align=center>
<th width="100%">论坛成功信息
</td>
</tr>
<tr>
<td width="100%" class=tablebody1>
<b>操作成功:</b><br><br>
<li>成功,您本次兑换了 <B><font color=red><%=(Dvbbs.Forum_ChanSetting(14) * UserInMoney)%></font></B> 张论坛点券。
</td></tr>
<tr align=center><td width="100%" class=tablebody2>
<a href="usermanager.asp"> << 返回用户控制面板</a> &nbsp;&nbsp;||&nbsp;&nbsp; <a href="UserPay.asp?action=UserCenter"> 去把点券转换成论坛金币>></a> 
</td></tr>
</table><br>
<%
End Sub

'--------------------------------------------------------------------------------
'用户信息
'--------------------------------------------------------------------------------
Sub UserInfo()
	Dim Sql,Rs,UserToolsCount
	'Sql = "Select Sum(ToolsCount) From [Dv_Plus_Tools_Buss] where UserID="& Dvbbs.UserID
	'Set Rs = Dvbbs.Plus_Execute(Sql)
	'UserToolsCount = Rs(0)
	'If IsNull(UserToolsCount) Then UserToolsCount = 0
%>
<table border="0" cellpadding=3 cellspacing=1 align=center class=Tableborder1 Style="Width:100%">
	<tr>
	<th height=23 >个人资料</th>
	</tr>
	<tr>
	<td align=center class=TableBody1>
	<table border="0" cellpadding=3 cellspacing=1 align=center Style="Width:90%">
	<tr><td class=TableBody2>金币:<B><font color="<%=Dvbbs.mainsetting(1)%>"><%=Dvbbs.MyUserInfo(37)%></font></B> 个</td></tr>
	<tr><td class=TableBody1>点券:<B><font color="<%=Dvbbs.mainsetting(1)%>"><%=Dvbbs.MyUserInfo(38)%></font></B> 张</td></tr>
	<tr><td class=TableBody2>金钱:<%=Dvbbs.MyUserInfo(21)%></td></tr>
	<tr><td class=TableBody1>文章:<%=Dvbbs.MyUserInfo(8)%></td></tr>
	<tr><td class=TableBody2>经验:<%=Dvbbs.MyUserInfo(22)%></td></tr>
	<tr><td class=TableBody1>魅力:<%=Dvbbs.MyUserInfo(23)%></td></tr>
	<tr><td class=TableBody2>威望:<%=Dvbbs.MyUserInfo(24)%></td></tr>
	<tr><td class=TableBody1></td></tr>
	</table>
	</td>
	</tr>
</table>
<%
End Sub

'--------------------------------------------------------------------------------
'金币转换
'--------------------------------------------------------------------------------
Sub UserCenter()
	If Request("react") = "Savechange" Then
		If Not Dvbbs.ChkPost() Then Dvbbs.AddErrCode(16):Dvbbs.Showerr()
		Dim userWealth,userep,usercp,userticket,UpUserMoney
		Dim Sql,Rs
		userWealth = Dvbbs.CheckNumeric(Request.Form("userWealth"))
		userep = Dvbbs.CheckNumeric(Request.Form("userep"))
		usercp = Dvbbs.CheckNumeric(Request.Form("usercp"))
		userticket = Dvbbs.CheckNumeric(Request.Form("userticket"))
		UpUserMoney = 0
		If userWealth<0 or userep<0 or usercp<0 or userticket<0 Then Dvbbs.AddErrCode(35):Dvbbs.Showerr()

		If userWealth>1 and userWealth<cCur(Dvbbs.MyUserInfo(21)) and cCur(Dvbbs.Forum_setting(93))<>0 Then
			If (userWealth \ cCur(Dvbbs.Forum_setting(93))) > 0 Then
				UpUserMoney = UpUserMoney + (userWealth \ cCur(Dvbbs.Forum_setting(93)))
				userWealth = (userWealth \ cCur(Dvbbs.Forum_setting(93))) * cCur(Dvbbs.Forum_setting(93))
				Dvbbs.MyUserInfo(21) = cCur(Dvbbs.MyUserInfo(21)) - userWealth
			Else
				userWealth = 0
			End If
		Else
			userWealth = 0
		End If

		If userep>1 and userep<cCur(Dvbbs.MyUserInfo(22)) and cCur(Dvbbs.Forum_setting(94))<>0 Then
			If (userep \ cCur(Dvbbs.Forum_setting(94))) > 0 Then
				UpUserMoney = UpUserMoney + (userep \ cCur(Dvbbs.Forum_setting(94)))
				userep = (userep \ cCur(Dvbbs.Forum_setting(94))) * cCur(Dvbbs.Forum_setting(94))
				Dvbbs.MyUserInfo(22) = cCur(Dvbbs.MyUserInfo(22)) - userep
			Else
				userep = 0
			End If
		Else
			userep = 0
		End If
		If usercp>1 and usercp<cCur(Dvbbs.MyUserInfo(23)) and cCur(Dvbbs.Forum_setting(95))<>0 Then
			If (usercp \ cCur(Dvbbs.Forum_setting(95))) > 0 Then
				UpUserMoney = UpUserMoney + (usercp \ cCur(Dvbbs.Forum_setting(95)))
				usercp = (usercp \ cCur(Dvbbs.Forum_setting(95))) * cCur(Dvbbs.Forum_setting(95))
				Dvbbs.MyUserInfo(23) = cCur(Dvbbs.MyUserInfo(23)) - usercp
			Else
				usercp = 0
			End If
		Else
			usercp = 0
		End If
		If userticket>1 and userticket<cCur(Dvbbs.MyUserInfo(38)) and cCur(Dvbbs.Forum_setting(96))<>0 Then
			If (userticket \ cCur(Dvbbs.Forum_setting(96))) > 0 Then
				UpUserMoney = UpUserMoney + (userticket \ cCur(Dvbbs.Forum_setting(96)))
				userticket = (userticket \ cCur(Dvbbs.Forum_setting(96))) * cCur(Dvbbs.Forum_setting(96))
				Dvbbs.MyUserInfo(38) = cCur(Dvbbs.MyUserInfo(38)) - userticket
			Else
				userticket = 0
			End If
		Else
			userticket = 0
		End If
		If UpUserMoney < 1 Then 
			 Response.redirect "showerr.asp?ErrCodes=<li>请填写转换的数据或获得的金币数太少!&action=OtherErr"
		Else
			Dvbbs.MyUserInfo(37) = cCur(Dvbbs.MyUserInfo(37)) + UpUserMoney
			Sql = "Update Dv_user set userWealth = "&Dvbbs.MyUserInfo(21)&",userEP="&Dvbbs.MyUserInfo(22)&",userCP="&Dvbbs.MyUserInfo(23)&",UserMoney="&Dvbbs.MyUserInfo(37)&",UserTicket="&Dvbbs.MyUserInfo(38)&" where UserID="&Dvbbs.UserID
			Dvbbs.Execute(Sql)
			Dim LogMsg
			LogMsg = "金币转换成功,获得总金币数为<b>"&UpUserMoney&"</b>,金钱减少<b>"&userWealth&"</b>,经验减少<b>"&userep&"</b>,魅力减少<b>"&usercp&"</b>,点券减少<b>"&userticket&"</b>。"
			'Call Dvbbs.ToolsLog(0,0,0,0,0,LogMsg,Dvbbs.MyUserInfo(37)&"|"&Dvbbs.MyUserInfo(38))
			Session(Dvbbs.CacheName & "UserID") = Dvbbs.MyUserInfo
			Dvbbs.Dvbbs_Suc(LogMsg)
		End If
	Else
%>
	<table border=0 cellpadding=3 cellspacing=1 class=Tableborder1 align=center style="width:100%">
	<tr><th height=20 colspan="5">论坛金币转换</th></tr>
	<tr><td height=20 colspan="5" class=Tablebody1><li>允许用户将金钱、经验、魅力、点券转换成金币。</td></tr>
    <tr>
      <th width="30%" height="20">金币转换汇率</th>
      <th width="15%">转换项目</th>
	  <th width="20%">转换信息</th>
      <th width="15%">转换设置</th>
	  <th width="20%">转换所得金币</th>
    </tr>
	<form action="UserPay.asp?action=UserCenter&react=Savechange" method=post NAME=CenterForm>
    <tr>
      <td rowspan="5" class=Tablebody1>
		<table border="0" cellpadding=3 cellspacing=1 align=center Style="Width:90%">
			<tr><td class=TableBody1>&nbsp;&nbsp;&nbsp;&nbsp;<a href="UserPay.asp"><font color=red>前往购买论坛点券</font></a></td></tr>
			<tr><td class=TableBody2>&nbsp;&nbsp;&nbsp;&nbsp;<b><font class=redfont>1</font> 金币 = <font class=redfont><%=Dvbbs.Forum_setting(93)%></font> 金钱</b></td></tr>
			<tr><td class=TableBody1>&nbsp;&nbsp;&nbsp;&nbsp;<b><font class=redfont>1</font> 金币 = <font class=redfont><%=Dvbbs.Forum_setting(94)%></font> 经验</b></td></tr>
			<tr><td class=TableBody2>&nbsp;&nbsp;&nbsp;&nbsp;<b><font class=redfont>1</font> 金币 = <font class=redfont><%=Dvbbs.Forum_setting(95)%></font> 魅力</b></td></tr>
			<tr><td class=TableBody1>&nbsp;&nbsp;&nbsp;&nbsp;<b><font class=redfont>1</font> 金币 = <font class=redfont><%=Dvbbs.Forum_setting(96)%></font> 点券</b></td></tr>
			<tr><td class=TableBody2></td></tr>
		</table>
	  </td>
      <td class=Tablebody2 align=center>拥有金钱值:</td>
      <td class=Tablebody1><font class=redfont><%=Dvbbs.MyUserInfo(21)%></font></td>
	  <td class=Tablebody1><INPUT TYPE="text" NAME="userWealth" value="0" onkeyup="ShowChange(this.value,this,'Show_Money',<%=Dvbbs.Forum_setting(93)%>,<%=Dvbbs.MyUserInfo(21)%>)"></td>
	  <td class=Tablebody1 ID=Show_Money>0</td>
    </tr>
    <tr>
      <td class=Tablebody2 align=center>拥有经验值:</td>
      <td class=Tablebody1><font class=redfont><%=Dvbbs.MyUserInfo(22)%></font></td>
	  <td class=Tablebody1><INPUT TYPE="text" NAME="userep" value="0" onkeyup="ShowChange(this.value,this,'Show_EP',<%=Dvbbs.Forum_setting(94)%>,<%=Dvbbs.MyUserInfo(22)%>)"></td>
	  <td class=Tablebody1 ID=Show_EP>0</td>
    </tr>
    <tr>
      <td class=Tablebody2 align=center>拥有魅力值:</td>
      <td class=Tablebody1><font class=redfont><%=Dvbbs.MyUserInfo(23)%></font></td>
	  <td class=Tablebody1><INPUT TYPE="text" NAME="usercp" value="0" onkeyup="ShowChange(this.value,this,'Show_CP',<%=Dvbbs.Forum_setting(95)%>,<%=Dvbbs.MyUserInfo(23)%>)"></td>
	  <td class=Tablebody1 ID=Show_CP>0</td>
    </tr>
    <tr>
      <td class=Tablebody2 align=center>拥有点券值:</td>

⌨️ 快捷键说明

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