<!--#include file="../../conn.asp"-->
<!--#include file="../../config.asp"-->
<!--#include file="MD5.asp"-->

<title><%=webname%>--快钱支付</title> 
<link href="../../include/css.css" rel="stylesheet" type="text/css">

<% dim  opayid

opayid=4
Function GetLocationURL() 
Dim Url 
Dim ServerPort,ServerName,ScriptName,QueryString 
ServerName = Request.ServerVariables("SERVER_NAME") 
ServerPort = Request.ServerVariables("SERVER_PORT") 
ScriptName = Request.ServerVariables("SCRIPT_NAME") 
QueryString = Request.ServerVariables("QUERY_STRING") 
Url="http://"&ServerName 
If ServerPort <> "80" Then Url = Url & ":" & ServerPort 
Url=Url&ScriptName 
Url=replace(Url,"99billok.asp","")
GetLocationURL=Url 
End Function 




set rs=server.CreateObject("adodb.recordset")
rs.open "select opayid,opayname,opaypassword,opayrturl,opayparter from sdx_opay where opayid="&opayid,conn,1,1
payid=rs("opayname")
paypwd=rs("opaypassword")
payurl=GetLocationURL()&rs("opayrturl")
payparter=rs("opayparter")
rs.close
set rs=nothing



'获取人民币网关账户号
merchantAcctId=trim(request("merchantAcctId"))

'设置人民币网关密钥
''区分大小写
key=paypwd

'获取网关版本.固定值
''快钱会根据版本号来调用对应的接口处理程序。
''本代码版本号固定为v2.0
version=trim(request("version"))

'获取语言种类.固定选择值。
''只能选择1、2、3
''1代表中文；2代表英文
''默认值为1
language=trim(request("language"))

'签名类型.固定值
''1代表MD5签名
''当前版本固定为1
signType=trim(request("signType"))

'获取支付方式
''值为：10、11、12、13、14
''00：组合支付（网关支付页面显示快钱支持的各种支付方式，推荐使用）10：银行卡支付（网关支付页面只显示银行卡支付）.11：电话银行支付（网关支付页面只显示电话支付）.12：快钱账户支付（网关支付页面只显示快钱账户支付）.13：线下支付（网关支付页面只显示线下支付方式）.14：B2B支付（网关支付页面只显示B2B支付，但需要向快钱申请开通才能使用）
payType=trim(request("payType"))

'获取银行代码
''参见银行代码列表
bankId=trim(request("bankId"))

'获取商户订单号
orderId=trim(request("orderId"))

'获取订单提交时间
''获取商户提交订单时的时间.14位数字。年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]
''如：20080101010101
orderTime=trim(request("orderTime"))

'获取原始订单金额
''订单提交到快钱时的金额，单位为分。
''比方2 ，代表0.02元
orderAmount=trim(request("orderAmount"))

'获取快钱交易号
''获取该交易在快钱的交易号
dealId=trim(request("dealId"))

'获取银行交易号
''如果使用银行卡支付时，在银行的交易号。如不是通过银行支付，则为空
bankDealId=trim(request("bankDealId"))

'获取在快钱交易时间
''14位数字。年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]
''如；20080101010101
dealTime=trim(request("dealTime"))

'获取实际支付金额
''单位为分
''比方 2 ，代表0.02元
payAmount=trim(request("payAmount"))

'获取交易手续费
''单位为分
''比方 2 ，代表0.02元
fee=trim(request("fee"))

'获取扩展字段1
ext1=trim(request("ext1"))

'获取扩展字段2
ext2=trim(request("ext2"))

'获取处理结果
''10代表 成功11代表 失败
payResult=trim(request("payResult"))

'获取错误代码
''详细见文档错误代码列表
errCode=trim(request("errCode"))

'获取加密签名串
signMsg=trim(request("signMsg"))



'生成加密串。必须保持如下顺序。
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"merchantAcctId",merchantAcctId)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"version",version)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"language",language)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"signType",signType)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"payType",payType)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"bankId",bankId)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"orderId",orderId)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"orderTime",orderTime)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"orderAmount",orderAmount)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"dealId",dealId)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"bankDealId",bankDealId)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"dealTime",dealTime)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"payAmount",payAmount)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"fee",fee)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"ext1",ext1)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"ext2",ext2)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"payResult",payResult)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"errCode",errCode)
	merchantSignMsgVal=appendParam(merchantSignMsgVal,"key",key)
merchantSignMsg= md5(merchantSignMsgVal)


'初始化结果及地址
rtnOk=0
rtnUrl=""

'商家进行数据处理，并跳转会商家显示支付结果的页面
''首先进行签名字符串验证
If UCase(signMsg)=UCase(merchantSignMsg) then

	''接着进行支付结果判断
	Select Case payResult
	
		  case "10"
			
			'*  
			' 商户网站逻辑处理，比方更新订单支付状态为成功
			' 特别注意：只有UCase(signMsg)=UCase(merchantSignMsgVal)，且payResult=10，才表示支付成功！同时将订单金额与提交订单前的订单金额进行对比校验。
			'*
			
			'报告给快钱处理结果，并提供将要重定向的地址。
			rtnOk=1
			rtnUrl=GetLocationURL()&"show.asp?msg=success!"
                        msg="成功"
			set rs=server.CreateObject("adodb.recordset")
rs.Open "select state,score,id,productnum from orders where goods='"&orderid&"'",conn,1,3
 if rs.eof and rs.bof then
              strnetpayresult1="但是支付订单号有错，返回更新订单状态出错，请联系商家！"
             
              else
do while not rs.EOF
rs("state")=3
strscore=rs("score")
set rsscore=server.CreateObject("adodb.recordset")
rsscore.open "select score from dv_user where username='"&rs("username")&"' ",conn,1,3
if rsscore.eof and rsscore.bof then
              strnetpayresult2="但是会员积分或商品积分有错，返回更新会员积分状态出错，请联系商家！"
              else
rsscore("score") = rs("score") + rsscore("score")
rsscore.update
end if
rsscore.close
set rsscore = nothing


rs.Update
rs.MoveNext
loop
end if
rs.Close
set rs=nothing

set rspro=server.CreateObject("adodb.recordset")
rspro.open "select orders.id,orders.goods,orders.productnum,orders.state,product.id,product.solded,product.stock from orders inner join product on orders.id=product.id where orders.goods='"&orderid&"' " ,conn,1,3
if rspro.eof and rspro.bof then
              strnetpayresult3="但是支付订单号或商品有错，返回更新商品销售数量和库存量状态出错，请联系商家！"
              else
do while not rspro.EOF
rspro("solded")=rspro("solded")+rspro("productnum")
rspro("stock")=rspro("stock")-rspro("productnum")
rspro.Update
rspro.MoveNext
loop
end if
rspro.Close
set rspro=nothing
		  msg="成功"&strnetpayresult1&strnetpayresult2&strnetpayresult3
		 Case else

			rtnOk=1
			rtnUrl=GetLocationURL()&"show.asp?msg=false!"
                       msg="失败"
	End select

else

	rtnOk=1
	rtnUrl=GetLocationURL()&"show.asp?msg=error!"
         msg="失败"
End if





	'功能函数。将变量值不为空的参数组成字符串
	Function appendParam(returnStr,paramId,paramValue)

		If returnStr <> "" Then
			If paramValue <> "" then
				returnStr=returnStr&"&"&paramId&"="&paramValue
			End if
		Else 
			If paramValue <> "" then
				returnStr=paramId&"="&paramValue
			End if
		End if
		
		appendParam=ReturnStr

	End Function
	'功能函数。将变量值不为空的参数组成字符串。结束


'以下报告给快钱处理结果，并提供将要重定向的地址


%>
<!doctype html public "-//w3c//dtd html 4.0 transitional//en" >
<html>
	<head>
		<title>快钱支付结果</title>
		<meta http-equiv="content-type" content="text/html; charset=gb2312" >
	</head>
	
<BODY>
<TABLE cellSpacing=1 cellPadding=0 width="100%" border=0 align="center" >
       
     <TBODY>
    <TR bgcolor=#ECECEC>
          <TD  height="20" colspan="2"></TD>
        </TR>
   <TR >
          <TD  height="30" colspan="2">&nbsp&nbsp&nbsp</TD>
        </TR>
    

   </TBODY>
  </TABLE>
  <TABLE cellSpacing=1 cellPadding=0 width="600" border=0 align="center" >
       
     <TBODY>
    <TR bgcolor=#FFffff>
          <TD  height="50"><IMG src="images/rmbtop.gif" border=0></TD>
        </TR>

   
   </TBODY>
  </TABLE>

   <TABLE cellSpacing=1 cellPadding=0 width="600" border=0 align="center" >
       
     <TBODY>
    <TR bgcolor=#FFffff>
          <TD bgcolor=#FF5900 height="28" colspan="2" align="center">快钱支付结果</TD>
        </TR>

   
   </TBODY>
  </TABLE>
	
	<div align="center">
		<table width="600" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC" >
			<tr bgcolor="#FFFFFF">
				<td width="80">支付方式:</td>
				<td >快钱[99bill]</td>
			</tr>
			<tr bgcolor="#FFFFFF">
				<td >订单编号:</td>
				<td ><%=orderId %></td>
			</tr>
			<tr bgcolor="#FFFFFF">
				<td>订单金额:</td>
				<td><%=(orderAmount)&"分" %></td>
			</tr>
			<tr bgcolor="#FFFFFF">
				<td>支付结果:</td>
				<td><%=msg %></td>
			</tr>
			<tr>
				<td></td>
				<td></td>
			</tr>
	  </table>
	</div>
<TABLE cellSpacing=1 cellPadding=0 width="100%" border=0 align="center" >
       
     <TBODY>

   <TR >
          <TD  height="60" colspan="2">&nbsp&nbsp&nbsp</TD>
        </TR>
     <TR bgcolor=#ECECEC>
          <TD  height="5" colspan="2"></TD>
        </TR>

      <TR >
          <TD  height="40" colspan="2" align="center"><IMG src="images/logo.gif" border=0>	</TD>
        </TR>
   </TBODY>
  </TABLE>
</BODY>
</HTML>



	