<%
'##############################################################################
'#                                                                            #
'#                       开放商户订单生成发送接口程序V3.4              	      #
'#                       ====================================                 #
'# 文件名称：SendOI.asp                                                       #
'# 原作者：钟千伟                                                             #
'# 修改者：张本翔 修改时间：2004-08-27                                        #
'# 技术支持：020-85578595 tech@gnete.com                                      #
'# 中国银联广州分公司技术管理部                                               #
'#                                                                            #
'# 主要功能：                                                                 #
'# =========                                                                  #
'# 1、此程序放在商户服务器端，用于生产商户订单，并对订单数据进行加密和数字签名#
'#                                                                            #
'# 2、通过用户浏览器将数据发送到银联在线                                      #
'#                                                                            #
'# 使用说明：                                                                 #
'# =========                                                                  #                                                                            
'#                                                                            #
'#    商户发送到GNETE.com的订单数据格式为：                                   #
'#    EncodeMsg     = 订单数据加密信息					      				  #
'#    SignMsg       = 时间戳签名					                          #
'#                                                                            #
'#                                                                            #
'##############################################################################

'强制定义变量
Option Explicit
On Error Resume Next

'函数名称：GetOrderNo(订单日期)
'主要功能：根据订单日期生成订单号
'-----------------------------------------------------------------------------------------
Function GetOrderNo(dDate)
    GetOrderNo = RIGHT("0000"+Trim(Year(dDate)),4)+RIGHT("00"+Trim(Month(dDate)),2)+RIGHT("00"+Trim(Day(dDate)),2)+RIGHT("00" + Trim(Hour(dDate)),2)+RIGHT("00"+Trim(Minute(dDate)),2)+RIGHT("00"+Trim(Second(dDate)),2)
End Function

'接收变量
'-----------------------------------------------------------------------------------------
Dim Action
Action      = Request("Action")      '用户动作

'执行用户动作，提交订单至银联在线
'-----------------------------------------------------------------------------------------
If Action = "SendOrder" Then

	Dim RcvCertPath,SendCertPath,SendCertPWD,MerId,OrderNo,OrderAmount,CurrCode,CallBackUrl,ResultMode
	Dim Reserved01,Reserved02,SourceText,obj,EncryptedMsg,SignedMsg,ErrMsg,bolRet,nPayStat				
	
	MerId       = "193"              	    '商户ID参数		
	OrderNo		= "12358794568"		'商户订单号
	OrderAmount	= "100"	'订单金额，格式：元.角分
	CurrCode	= "CNY"		'货币代码，值为：CNY
	CallBackUrl	= Request("CallBackUrl")	'支付结果接收URL
	ResultMode  = "0"				'支付结果返回方式(0-成功和失败支付结果均返回；1-仅返回成功支付结果)
	Reserved01 	= ""				'保留域1
	Reserved02 	= ""				'保留域2		
	
	SendCertPath= "/Cert/cert.pfx"       	'发送方证书路径(商户证书)	
	RcvCertPath	= "/Cert/gnete.cer"       	'接收方证书路径(银联证书)					
	SendCertPWD = "etposhsz"      '发送方证书密码(商户证书)	
	
	'组合成订单原始数据
	SourceText 	= "MerId=294&OrderNo=2010011508262823&OrderAmount=0.01&CurrCode=CNY&CallBackUrl=http://192.168.1.124:94/OvRcv.aspx&BankCode=01025800&ResultMode=0&Reserved01=&Reserved02="
	
	'创建商户加密对象
	
	Set obj   = Server.CreateObject("OpenVendorV34.NetTran")	

	'使用接收方证书对订单原始数据进行加密
	
	If obj.EncryptMsg(SourceText, RcvCertPath) = 0 Then			
		EncryptedMsg = obj.LastResult
	else		
		Response.write obj.LastErrMsg  
		response.end
	End If
	
	'使用发送方证书对订单原始数据进行签名
	If obj.SignMsg(SourceText, SendCertPath, SendCertPWD) = 0 Then		
		SignedMsg = obj.LastResult
	Else
		Response.write obj.LastErrMsg  
		response.end
	End If		
	
	Set obj = Nothing
	
	'生成FORM并自动提交	
	Response.Write "<form method='post' name='SendOrderForm' action='http://test.gnete.com/Bin/Scripts/OpenVendor/Gnete/V34/GetOvOrder.asp'>"&vbCrLf		
	Response.Write "<input type='hidden' name='EncodeMsg' value='"& EncryptedMsg &"'>"&vbCrLf
	Response.Write "<input type='hidden' name='SignMsg' value='"& SignedMsg &"'>"&vbCrLf
	Response.Write "</form>"&vbCrLf
	Response.Write "<script language='javascript'>"&vbCrLf
	Response.Write "<!--"&vbCrLf
	Response.Write "SendOrderForm.submit();"&vbCrLf
	Response.Write "//-->"&vbCrLf
	Response.Write "</script>"
	Response.End
	
End If
'-----------------------------------------------------------------------------------------
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>中国银联广州分公司网上支付程序示例V3.4</title>
<link rel="stylesheet" type="text/css" href="http://www.gnete.com/bin/Scripts/OpenVendor/Gnete/V31/GNETPG.css">
</head>
<body>
<table border="0" cellpadding="1" cellspacing="1" width="95%"  height="100%" align="center">
<tr>
<td bgcolor="#347F99" class="pptext">
&nbsp;中国银联广州分公司<br>
&nbsp;网上支付程序示例V3.4<br>
&nbsp;====================<br>
<br>
&nbsp;文件名称：SendOI.asp<br>
&nbsp;原作者：钟千伟<br>
&nbsp;修改者：张本翔<br> 
&nbsp;最后修改时间：2004-08-27<br>
&nbsp;技术支持：020-85578595  <a href="mailto:tech@gnete.com">tech@gnete.com</a><br>
&nbsp;中国银联广州分公司技术管理部<br>
<br>
&nbsp;主要功能：<br>
&nbsp;=========<br>
&nbsp;发送订单信息到银联在线订单接口<br>
<br>
</td>
<td bgcolor="#979797">
<!--订单发送表单开始-->
<table border="0">
<form method="post" name="OrderForm" action="SendOI.asp">
<input type="hidden" name="Action" value="SendOrder">
<tr>
<td class="pptext">订单号：</td>
<td><input type="text" name="OrderNo" value="<%=GetOrderNo(Now)%>" class="pptext"></td>
</tr>
<tr>
<td class="pptext">货币代码：</td>
<td><input type="text" name="CurrCode" value="CNY" class="pptext"></td>
</tr>
<tr>
<td class="pptext">支付金额：</td>
<td><input type="text" name="OrderAmount" value="0.01" class="pptext"></td>
</tr>
<tr>
<td class="pptext">支付结果接收URL：</td>	
<%'请将该处URL改为您的接收URL
%>
<td><input type="text" name="CallBackUrl" value="http://test.gnete.com/Bin/Scripts/OpenVendor/Gnete/V34/OvRcv.asp" class="pptext"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value=" 提交订单 " class="pptext"></td>
</tr>
</form>
</table>
<!--订单发送表单结束-->
</td>
</tr>
</table>
</body>
</html>

