using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace tenpay
{
	/// <summary>
	/// index 的摘要说明。
	/// </summary>
	public class index : System.Web.UI.Page
	{
		private void Page_Load(object sender, System.EventArgs e)
		{
			//平台商户号
			string chnid = "88881491";

			//卖家商户号
			string seller = "88881535";

			//密钥
			string key ="88881491";


			//生成订单10位序列号，此处用时间和随机数生成，商户根据自己调整，保证唯一
			string strReq = "" + DateTime.Now.ToString("HHmmss") + TenpayUtil.BuildRandomStr(4);

			//商户订单号，不超过32位，财付通只做记录，不保证唯一性
			string mch_vno = strReq;

			//商户回调url
			string mch_returl = "http://localhost/tenpay/return_url.aspx";

			//支付结果通知页面
			string show_url = "http://localhost/tenpay/show_url.aspx";

			//创建MediPayRequestHandler实例
			MediPayRequest reqHandler = new MediPayRequest(Context);

			//设置密钥
			reqHandler.setKey(key);

			//初始化
			reqHandler.init();

			//-----------------------------
			//设置支付参数
			//-----------------------------
			reqHandler.setParameter("chnid", chnid);				//平台商户号
			reqHandler.setParameter("seller",seller);				//卖家商户号
			reqHandler.setParameter("mch_vno",mch_vno);				//商家订单号
			reqHandler.setParameter("mch_returl", mch_returl);		//支付通知url
			reqHandler.setParameter("show_url",show_url);			//支付结果显示页面
			reqHandler.setParameter("mch_name", mch_vno);			//商品名称
			reqHandler.setParameter("mch_desc","tenpay测试");		//交易说明
			reqHandler.setParameter("mch_price", "1");				//商品金额,以分为单位
			reqHandler.setParameter("encode_type","1");				//编码类型：1,gb2312 2,utf-8
			reqHandler.setParameter("transport_desc","EMS快递");	//物流说明
			reqHandler.setParameter("transport_fee","1");			//物流费用
			reqHandler.setParameter("need_buyerinfo","1");			//是否需要在财付通填定物流信息，1：需要，2：不需要
			reqHandler.setParameter("mch_type","2");				//交易类型：1、实物交易，2、虚拟交易
			reqHandler.setParameter("attach","");				//商户自定义参数

			//获取请求带参数的url
			string requestUrl = reqHandler.getRequestURL();

			string a_link = "<a target=\"_blank\" href=\"" + requestUrl + "\">" + "财付通支付" + "</a>";

			Response.Write(a_link);

			//post实现方式
			/*
			reqHandler.getRequestURL();
			Response.Write("<form method=\"post\" action=\""+ reqHandler.getGateUrl() + "\" >\n");
			Hashtable ht = reqHandler.getAllParameters();
			foreach(DictionaryEntry de in ht) 
			{
				Response.Write("<input type=\"hidden\" name=\"" + de.Key + "\" value=\"" + de.Value + "\" >\n");
			}
			Response.Write("<input type=\"submit\" value=\"财付通支付\" >\n</form>\n");
			*/
			
			//获取debug信息
			//string debuginfo = reqHandler.getDebugInfo();
			//Response.Write("<br/>" + debuginfo + "<br/>");
			
			//重定向到财付通支付
			//reqHandler.doSend();
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		/// 设计器支持所需的方法 - 不要使用代码编辑器修改
		/// 此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{    
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion
	}
}
