<%@ Language=VBScript %>
<!--#include virtual="/inc-freehost-function/FreeHostFunctionMain.asp"-->
<%
If not ef Then
If Application("NP_Netcard_ShopID")="123" Or Application("NP_Netcard_ShopID")="" Then
		ef=True
		ec="商号尚未设置！"
End if
end If

'---获取云网支付网关向商户发送的支付通知信息(以下简称为通知信息)
	c_mid			= request("c_mid")			'商户编号，在申请商户成功后即可获得，可以在申请商户成功的邮件中获取该编号
	c_order			= request("c_order")		'商户提供的订单号
	c_orderamount	= request("c_orderamount")	'商户提供的订单总金额，以元为单位，小数点后保留两位，如：13.05
	c_ymd			= request("c_ymd")			'商户传输过来的订单产生日期，格式为"yyyymmdd"，如20050102
	c_transnum		= request("c_transnum")		'云网支付网关提供的该笔订单的交易流水号，供日后查询、核对使用；
	c_succmark		= request("c_succmark")		'交易成功标志，Y-成功 N-失败			
	c_moneytype		= request("c_moneytype")	'支付币种，0为人民币
	c_cause			= request("c_cause")		'如果订单支付失败，则该值代表失败原因		
	c_memo1			= request("c_memo1")		'商户提供的需要在支付结果通知中转发的商户参数一
	c_memo2			= request("c_memo2")		'商户提供的需要在支付结果通知中转发的商户参数二
	c_signstr		= request("c_signstr")		'云网支付网关对已上信息进行MD5加密后的字符串

	'---校验信息完整性---
		IF c_mid="" or c_order="" or c_orderamount="" or c_ymd="" or c_moneytype="" or c_transnum="" or c_succmark="" or c_signstr="" THEN
			response.write "支付信息有误"
			response.end
		END IF

	'---将获得的通知信息拼成字符串，作为准备进行MD5加密的源串，需要注意的是，在拼串时，先后顺序不能改变
		Dim c_pass	'商户的支付密钥，登录商户管理后台(https://www.cncard.net/admin/)，在管理首页可找到该值
		c_pass = Application("NP_Netcard_Key")
		
		srcStr = c_mid & c_order & c_orderamount & c_ymd & c_transnum & c_succmark & c_moneytype & c_memo1 & c_memo2 & c_pass

	'---对支付通知信息进行MD5加密
		r_signstr	= MD5(srcStr)

	'---校验商户网站对通知信息的MD5加密的结果和云网支付网关提供的MD5加密结果是否一致
		IF r_signstr<>c_signstr THEN
			response.write "签名验证失败"
			response.end
		END IF

	'---校验商户编号
		Dim MerchantID	'商户自己的编号
		IF Cstr(Application("NP_Netcard_ShopID"))<>Cstr(c_mid) THEN
			response.write "提交的商户编号有误:"&c_mid&"_"&Application("NP_Netcard_ShopID")
			response.end
		END IF




	'---校验商户订单系统中是否有通知信息返回的订单信息
Set conn=Server.CreateObject("ADODB.Connection")
	conn.Open Application("FreeHostDBlink")
Set dsNP = Server.CreateObject("ADODB.Recordset")	
	Sql="Select * from FreeHost.FreeHost_Netpay where ORDERID='"&c_order&"' and SHOPID='"&Application("NP_Netcard_ShopID")&"' "

if RegExpTest("[^A-Za-z0-9]",c_order) then
	ef=True
	ec="ORDERID或SHOPID不正确！用户试图SQL注入被拦截,内容:"&c_order&SHOPID
FreeHost_oplog "error","信息","实时返回支付出错"&ec
response.write "fail"&ec
response.end
end If

'	Application("NPS_test")=sql&"   "&FD_NPSId
'	response.write sql
'	response.end
		dsNP.Open Sql,conn,1,3
if dsNP.eof then
response.write "未找到该订单信息"
			response.end
else
  if dsNP("SucceedFlag") <>100 then
            response.write "状态没有更新成功！"
			response.end
  end if
end if

	'---校验商户订单系统中记录的订单金额和云网支付网关通知信息中的金额是否一致
		Dim r_orderamount	'商户自己系统记录的订单金额
		r_orderamount=dsNP("ORDERMONEY")	'商户从自己订单系统获取该值
		IF ccur(r_orderamount)<ccur(c_orderamount) THEN
			response.write "支付金额有误"
			response.end
		END IF


	'---校验返回的支付结果的格式是否正确
		IF c_succmark<>"Y" and c_succmark<>"N" THEN
			response.write "参数提交有误"
			response.end
		END IF

	'---根据返回的支付结果，商户网站可自行给用户显示说明
		IF c_succmark<>"Y" THEN
			response.write "支付不成功。"
			response.end
		END IF
%>
<html>
<head>
<style type="text/css">
<!--
p9,body,td,p,br {  font-size: 9pt}
A:visited {	COLOR:#003399; TEXT-DECORATION: none}
A:hover { COLOR: red; TEXT-DECORATION: underline}
A:link { COLOR: #003399;TEXT-DECORATION: none}
-->
</style>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<body>　支付结果<br><br><br><br>

支付完成。
您的金额成功增加：<font color=red><%=r_orderamount%>元</font><br>
</body>
</html>