Example #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ///////////////////////以下参数是需要设置的相关配置参数,设置后不会更改的////////////////////////////
        AlipayConfig con = new AlipayConfig();
        string partner = con.Partner;
        string key = con.Key;
        string input_charset = con.Input_charset;
        string sign_type = con.Sign_type;

        ////////////////////////////////////////////////////////////////////////////////////////////////////

        ///////////////////////请求参数/////////////////////////////////////////////////////////////////////
        //--------------必填参数--------------
        //支付宝交易号。它是登陆支付宝网站在交易管理中查询得到,一般以8位日期开头的纯数字(如:20100419XXXXXXXXXX)
        string trade_no = Request.Form["trade_no"];

        //物流公司名称
        string logistics_name = Request.Form["logistics_name"];

        //物流发货单号
        string invoice_no = Request.Form["invoice_no"];

        //物流发货时的运输类型,三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)
        string transport_type = Request.Form["transport_type"];

        //--------------选填参数--------------
        //卖家本地电脑IP地址
        string seller_ip = "";

        /////////////////////////////////////////////////////////////////////////////////////////////////////

        //构造请求函数
        AlipayService aliService = new AlipayService(
            partner,
            trade_no,
            logistics_name,
            invoice_no,
            transport_type,
            seller_ip,
            key,
            input_charset,
            sign_type);

        string sHtmlText = aliService.Build_Form();
        Response.Write(sHtmlText);
    }
Example #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ///////////////////////以下参数是需要设置的相关配置参数,设置后不会更改的////////////////////////////
        AlipayConfig con = new AlipayConfig();
        string partner = con.Partner;
        string key = con.Key;
        string input_charset = con.Input_charset;
        string sign_type = con.Sign_type;

        ////////////////////////////////////////////////////////////////////////////////////////////////////

        ///////////////////////请求参数/////////////////////////////////////////////////////////////////////
        //--------------必填参数--------------
        //支付宝交易号。它是登陆支付宝网站在交易管理中查询得到,一般以8位日期开头的纯数字(如:20100419XXXXXXXXXX)
        string trade_no = Request.Form["trade_no"];

        //物流公司名称
        string logistics_name = Request.Form["logistics_name"];

        //物流发货单号
        string invoice_no = Request.Form["invoice_no"];

        //物流发货时的运输类型,三个值可选:POST(平邮)、EXPRESS(快递)、EMS(EMS)
        string transport_type = Request.Form["transport_type"];

        //--------------选填参数--------------
        //卖家本地电脑IP地址
        string seller_ip = "";

        /////////////////////////////////////////////////////////////////////////////////////////////////////

        //构造请求函数
        AlipayService aliService = new AlipayService(
            partner,
            trade_no,
            logistics_name,
            invoice_no,
            transport_type,
            seller_ip,
            key,
            input_charset,
            sign_type);

        /***********************无XML远程解析***********************/
        //string sHtmlText = aliService.Build_Form();
        //Response.Write(sHtmlText);
        //Response.End();

        /***********************含XML远程解析***********************/
        //注意:远程解析XML出错,与IIS服务器配置有关
        string url = aliService.Create_url();

        XmlTextReader Reader = new XmlTextReader(url);
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Reader);

        //解析XML,获取XML返回的数据,如:请求处理是否成功、商家网站唯一订单号、支付宝交易号、发货时间等
        string nodeIs_success = xmlDoc.SelectSingleNode("/alipay/is_success").InnerText;
        string nodeOut_trade_no = "";
        string nodeTrade_no = "";
        string nodeTrade_status = "";
        string nodeLast_modified_time = "";
        string nodeError = "";

        if (nodeIs_success == "T")
        {
            nodeOut_trade_no = xmlDoc.SelectSingleNode("/alipay/response/tradeBase/out_trade_no").InnerText;
            nodeTrade_no = xmlDoc.SelectSingleNode("/alipay/request").ChildNodes[2].InnerText;
            nodeTrade_status = xmlDoc.SelectSingleNode("/alipay/response/tradeBase/trade_status").InnerText;
            nodeLast_modified_time = xmlDoc.SelectSingleNode("/alipay/response/tradeBase/last_modified_time").InnerText;
        }
        else
        {
            nodeError = xmlDoc.SelectSingleNode("/alipay/error").InnerText;
        }

        //打印页面
        StringBuilder sbHtml = new StringBuilder();
        sbHtml.Append("<table align=center width=350 cellpadding=5 cellspacing=0>");
        sbHtml.Append("<tr><td align=center class=font_title colspan=2>XML返回</td></tr>");
        sbHtml.Append("<tr><td class=font_content align=right>请求处理是否成功:</td><td class=font_content align=left>" + nodeIs_success + "</td></tr>");
        if (nodeIs_success == "T")
        {
            sbHtml.Append("<tr><td class=font_content align=right>商户网站订单号:</td><td class=font_content align=left>" + nodeOut_trade_no + "</td></tr>");
            sbHtml.Append("<tr><td class=font_content align=right>支付宝交易号:</td><td class=font_content align=left>" + nodeTrade_no + "</td></tr>");
            sbHtml.Append("<tr><td class=font_content align=right>交易状态:</td><td class=font_content align=left>" + nodeTrade_status + "</td></tr>");
            sbHtml.Append("<tr><td class=font_content align=right>发货时间等:</td><td class=font_content align=left>" + nodeLast_modified_time + "</td></tr>");
        }
        else
        {
            sbHtml.Append("<tr><td class=font_content align=right>错误:</td><td class=font_content align=left>" + nodeError + "</td></tr>");
        }
        sbHtml.Append("</table>");

        LblXml.Text = sbHtml.ToString();

        ////////////////////////////////////////////////////////////////////////////////////////////////////
        //请在此处编写商户发货成功后的业务逻辑程序代码,以便把商户网站里的该笔订单与支付宝的订单信息同步。

        ///////////////////////////////////////////////////////////////////////////////////////////////////
    }
Example #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ///////////////////////以下参数是需要设置的相关配置参数,设置后不会更改的///////////////////////////
        AlipayConfig con = new AlipayConfig();
        string partner = con.Partner;
        string key = con.Key;
        string seller_email = con.Seller_email;
        string input_charset = con.Input_charset;
        string notify_url = con.Notify_url;
        string return_url = con.Return_url;
        string show_url = con.Show_url;
        string sign_type = con.Sign_type;

        ////////////////////////////////////////////////////////////////////////////////////////////////////

        ///////////////////////以下参数是需要通过下单时的订单数据传入进来获得////////////////////////////////
        //必填参数
        string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmss");  //请与贵网站订单系统中的唯一订单号匹配
        string subject = Request.Form["aliorder"];                      //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。
        string body = Request.Form["alibody"];                          //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
        string price = Request.Form["alimoney"];    		            //订单总金额,显示在支付宝收银台里的“商品单价”里

        string logistics_fee = "0.00";                  				//物流费用,即运费。
        string logistics_type = "EXPRESS";				                //物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
        string logistics_payment = "SELLER_PAY";            			//物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)

        string quantity = "1";              							//商品数量,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品。

        //扩展参数——买家收货信息(推荐作为必填)
        //该功能作用在于买家已经在商户网站的下单流程中填过一次收货信息,而不需要买家在支付宝的付款流程中再次填写收货信息。
        //若要使用该功能,请至少保证receive_name、receive_address有值
        //收货信息格式请严格按照姓名、地址、邮编、电话、手机的格式填写
        string receive_name = "收货人姓名";			                    //收货人姓名,如:张三
        string receive_address = "收货人地址";			                //收货人地址,如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
        string receive_zip = "123456";                  			    //收货人邮编,如:123456
        string receive_phone = "0571-81234567";                		    //收货人电话号码,如:0571-81234567
        string receive_mobile = "13312341234";               		    //收货人手机号码,如:13312341234

        //扩展参数——第二组物流方式
        //物流方式是三个为一组成组出现。若要使用,三个参数都需要填上数据;若不使用,三个参数都需要为空
        //有了第一组物流方式,才能有第二组物流方式,且不能与第一个物流方式中的物流类型相同,
        //即logistics_type="EXPRESS",那么logistics_type_1就必须在剩下的两个值(POST、EMS)中选择
        string logistics_fee_1 = "";                					//物流费用,即运费。
        string logistics_type_1 = "";               					//物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
        string logistics_payment_1 = "";           					    //物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)

        //扩展参数——第三组物流方式
        //物流方式是三个为一组成组出现。若要使用,三个参数都需要填上数据;若不使用,三个参数都需要为空
        //有了第一组物流方式和第二组物流方式,才能有第三组物流方式,且不能与第一组物流方式和第二组物流方式中的物流类型相同,
        //即logistics_type="EXPRESS"、logistics_type_1="EMS",那么logistics_type_2就只能选择"POST"
        string logistics_fee_2 = "";                					//物流费用,即运费。
        string logistics_type_2 = "";               					//物流类型,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
        string logistics_payment_2 = "";            					//物流支付方式,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)

        //扩展功能参数——其他
        string buyer_email = "";                    					//默认买家支付宝账号
        string discount = "";                       					//折扣,是具体的金额,而不是百分比。若要使用打折,请使用负数,并保证小数点最多两位数

        /////////////////////////////////////////////////////////////////////////////////////////////////////

        //构造请求函数,无需修改
        AlipayService aliService = new AlipayService(
            partner,
            seller_email,
            return_url,
            notify_url,
            show_url,
            out_trade_no,
            subject,
            body,
            price,
            logistics_fee,
            logistics_type,
            logistics_payment,
            quantity,
            receive_name,
            receive_address,
            receive_zip,
            receive_phone,
            receive_mobile,
            logistics_fee_1,
            logistics_type_1,
            logistics_payment_1,
            logistics_fee_2,
            logistics_type_2,
            logistics_payment_2,
            buyer_email,
            discount,
            key,
            input_charset,
            sign_type);
        string sHtmlText = aliService.Build_Form();

        //打印页面
        lbOut_trade_no.Text = out_trade_no;
        lbTotal_fee.Text = price;
        lbButton.Text = sHtmlText;
    }
Example #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        ///////////////////////以下参数是需要设置的相关配置参数,设置后不会更改的///////////////////////////
        AlipayConfig con = new AlipayConfig();
        string partner = con.Partner;
        string key = con.Key;
        string seller_email = con.Seller_email;
        string input_charset = con.Input_charset;
        string notify_url = con.Notify_url;
        string return_url = con.Return_url;
        string show_url = con.Show_url;
        string sign_type = con.Sign_type;

        ////////////////////////////////////////////////////////////////////////////////////////////////////

        ///////////////////////以下参数是需要通过下单时的订单数据传入进来获得////////////////////////////////
        //必填参数
        string out_trade_no = DateTime.Now.ToString("yyyyMMddHHmmss");  //请与贵网站订单系统中的唯一订单号匹配
        string subject = Request.Form["aliorder"];                      //订单名称,显示在支付宝收银台里的“商品名称”里,显示在支付宝的交易管理的“商品名称”的列表里。
        string body = Request.Form["alibody"];                          //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
        string total_fee = Request.Form["alimoney"];                    //订单总金额,显示在支付宝收银台里的“应付总额”里

        //扩展功能参数——默认支付方式
        string paymethod = "";                                          //默认支付方式,四个值可选:bankPay(网银); cartoon(卡通); directPay(余额); CASH(网点支付),初始值
        string defaultbank = "";                                        //默认网银代号,代号列表见http://club.alipay.com/read.php?tid=8681379 初始值
        string pay_mode = Request.Form["pay_bank"];
        if (pay_mode == "directPay")
        {
            paymethod = "directPay";
        }
        else
        {
            paymethod = "bankPay";
            defaultbank = pay_mode;
        }

        //扩展功能参数——防钓鱼
        //请慎重选择是否开启防钓鱼功能
        //exter_invoke_ip、anti_phishing_key一旦被设置过,那么它们就会成为必填参数
        //建议使用POST方式请求数据
        string anti_phishing_key = "";                                  //防钓鱼时间戳
        string exter_invoke_ip = "";                                    //获取客户端的IP地址,建议:编写获取客户端IP地址的程序
        //如:
        //exter_invoke_ip = "";
        //anti_phishing_key = AlipayFunction.Query_timestamp(partner);  //获取防钓鱼时间戳函数

        //扩展功能参数——其他
        string extra_common_param = "";                                 //自定义参数,可存放任何内容(除=、&等特殊字符外),不会显示在页面上
        string buyer_email = "";			                            //默认买家支付宝账号

        //扩展功能参数——分润(若要使用,请按照注释要求的格式赋值)
        string royalty_type = "";                                   //提成类型,该值为固定值:10,不需要修改
        string royalty_parameters = "";
        //提成信息集,与需要结合商户网站自身情况动态获取每笔交易的各分润收款账号、各分润金额、各分润说明。最多只能设置10条
        //各分润金额的总和须小于等于total_fee
        //提成信息集格式为:收款方Email_1^金额1^备注1|收款方Email_2^金额2^备注2
        //如:
        //royalty_type = "10";
        //royalty_parameters = "[email protected]^0.01^分润备注一|[email protected]^0.01^分润备注二";

        /////////////////////////////////////////////////////////////////////////////////////////////////////

        //构造请求函数,无需修改
        AlipayService aliService = new AlipayService(partner, seller_email, return_url, notify_url, show_url, out_trade_no, subject, body, total_fee, paymethod, defaultbank, anti_phishing_key, exter_invoke_ip, extra_common_param, buyer_email, royalty_type, royalty_parameters, key, input_charset, sign_type);
        string sHtmlText = aliService.Build_Form();

        //打印页面
        lbOut_trade_no.Text = out_trade_no;
        lbTotal_fee.Text = total_fee;
        lbButton.Text = sHtmlText;
    }