Ejemplo n.º 1
0
        public string GetPayRequest(Hashtable hash)
        {
            //==================================================================================
            //支付宝网关地址
            string GATEWAY_NEW = "http://wappaygw.alipay.com/service/rest.htm?";

            ////////////////////////////////////////////调用授权接口alipay.wap.trade.create.direct获取授权码token////////////////////////////////////////////

            //返回格式
            string format = "xml";
            //必填,不需要修改

            //返回格式
            string v = "2.0";
            //必填,不需要修改

            //请求号
            string req_id = DateTime.Now.ToString("yyyyMMddHHmmss");
            //必填,须保证每次请求都是唯一



            //商户号
            string partner = hash["alipay_key"].ToString();
            //密钥
            string key = hash["alipay_secret"].ToString();


            AlipayMobileConfig.Partner = partner;
            AlipayMobileConfig.Key     = key;

            float product_fee   = (float)hash["order_fee"];                          //商品费用
            float transport_fee = float.Parse(hash["order_exp_fee"].ToString());     //物流费用


            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");



            //req_data详细信息

            //服务器异步通知页面路径
            //需http://格式的完整路径,不允许加?id=123这类自定义参数


            //页面跳转同步通知页面路径
            string notify_url = hash.Contains("notify_url") ? hash["notify_url"].ToString() : PayUtil.GetNotifyUrl(PayMethods.Alipay, PayApiType.Direct);

            //需http://格式的完整路径,不能加?id=123这类自定义参数

            //页面跳转同步通知页面路径
            string return_url = hash.Contains("return_url") ? hash["return_url"].ToString() : PayUtil.GetReturnUrl(PayMethods.Alipay, PayApiType.Direct);

            //操作中断返回地址
            string merchant_url = return_url;
            //用户付款中途退出返回商户的地址。需http://格式的完整路径,不允许加?id=123这类自定义参数

            //卖家支付宝帐户
            string seller_email = hash["seller_account"] as string;
            //必填

            //订单号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string out_trade_no = hash["order_no"].ToString();
            string host         = hash["usr_host"] as string;

            string showUrl = hash["order_showurl"] as string;
            //商户网站订单系统中唯一订单号,必填

            //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
            string subject = hash["order_subject"].ToString(); //parma.desc ?? "支付订单";
            //必填

            //订单总金额,显示在支付宝收银台里的“应付总额”里
            string total_fee = Convert.ToString(product_fee + transport_fee);
            //必填

            //请求业务参数详细
            string req_dataToken = "<direct_trade_create_req><notify_url>" + notify_url + "</notify_url><call_back_url>" + return_url + "</call_back_url><seller_account_name>" + seller_email + "</seller_account_name><out_trade_no>" + out_trade_no + "</out_trade_no><subject>" + subject + "</subject><total_fee>" + total_fee + "</total_fee><merchant_url>" + merchant_url + "</merchant_url></direct_trade_create_req>";
            //必填

            //把请求参数打包成数组
            Dictionary <string, string> sParaTempToken = new Dictionary <string, string>();

            sParaTempToken.Add("partner", AlipayMobileConfig.Partner);
            sParaTempToken.Add("_input_charset", AlipayMobileConfig.Input_charset.ToLower());
            sParaTempToken.Add("sec_id", AlipayMobileConfig.Sign_type.ToUpper());
            sParaTempToken.Add("service", "alipay.wap.trade.create.direct");
            sParaTempToken.Add("format", format);
            sParaTempToken.Add("v", v);
            sParaTempToken.Add("req_id", req_id);
            sParaTempToken.Add("req_data", req_dataToken);

            //建立请求
            string sHtmlTextToken = Submit.BuildRequest(GATEWAY_NEW, sParaTempToken);

            //URLDECODE返回的信息
            System.Text.Encoding code = System.Text.Encoding.GetEncoding(AlipayMobileConfig.Input_charset);
            sHtmlTextToken = HttpUtility.UrlDecode(sHtmlTextToken, code);

            //解析远程模拟提交后返回的信息
            Dictionary <string, string> dicHtmlTextToken = Submit.ParseResponse(sHtmlTextToken);

            //获取token
            string request_token = dicHtmlTextToken["request_token"];

            ////////////////////////////////////////////根据授权码token调用交易接口alipay.wap.auth.authAndExecute////////////////////////////////////////////


            //业务详细
            string req_data = "<auth_and_execute_req><request_token>" + request_token + "</request_token></auth_and_execute_req>";
            //必填

            //把请求参数打包成数组
            Dictionary <string, string> sParaTemp = new Dictionary <string, string>();

            sParaTemp.Add("partner", AlipayMobileConfig.Partner);
            sParaTemp.Add("_input_charset", AlipayMobileConfig.Input_charset.ToLower());
            sParaTemp.Add("sec_id", AlipayMobileConfig.Sign_type.ToUpper());
            sParaTemp.Add("service", "alipay.wap.auth.authAndExecute");
            sParaTemp.Add("format", format);
            sParaTemp.Add("v", v);
            sParaTemp.Add("req_data", req_data);

            //建立请求
            string sHtmlText = Submit.BuildRequest(GATEWAY_NEW, sParaTemp, "get", "确认");


            return(sHtmlText);
        }
Ejemplo n.º 2
0
        public string GetPayFormHtml(Hashtable ht)
        {
            //商户号
            string partner = ht["alipay_key"] as string;
            //密钥
            string key = ht["alipay_secret"] as string;


            AlipayConfig.Partner = partner;// +"5";
            AlipayConfig.Key     = key;


            decimal product_fee   = (decimal)ht["order_fee"];                          //商品费用
            decimal transport_fee = decimal.Parse(ht["order_exp_fee"].ToString());     //物流费用

            string order_desc = ht["order_desc"] as string;

            //订单号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string out_trade_no = ht["order_no"] as string;
            string host         = ht["usr_host"] as string;

            string showUrl = ht["order_surl"] as string;

            string notify_url = ht.Contains("notify_url")?ht["notify_url"].ToString():PayUtil.GetNotifyUrl(PayMethods.Alipay, PayApiType.Guarantee);

            //需http://格式的完整路径,不能加?id=123这类自定义参数

            //页面跳转同步通知页面路径
            string return_url = ht.Contains("return_url")?ht["return_url"].ToString():PayUtil.GetReturnUrl(PayMethods.Alipay, PayApiType.Guarantee);
            //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/


            //卖家支付宝帐户
            string seller_email = ht["seller_account"] as string;

            //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
            string subject = ht["order_subject"].ToString();  //parma.desc ?? "支付订单";

            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");
            //todo
            string body = order_desc;

            //订单总金额,显示在支付宝收银台里的“应付总额”里
            string total_fee = Convert.ToString(product_fee + transport_fee);


            ReceiveInfo receive = default(ReceiveInfo);

            if (ht.ContainsKey("receive"))
            {
                receive = (ReceiveInfo)ht["receive"];
            }



            ////////////////////////////////////////////请求参数////////////////////////////////////////////

            //支付类型
            string payment_type = "1";

            //必填

            //商品数量
            string quantity = "1";
            //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品
            //物流费用
            string logistics_fee = "0.00";
            //必填,即运费
            //物流类型
            string logistics_type = "EXPRESS";
            //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
            //物流支付方式
            string logistics_payment = "SELLER_PAY";
            //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
            //订单描述



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

            //把请求参数打包成数组
            SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();

            sParaTemp.Add("partner", AlipayConfig.Partner);
            sParaTemp.Add("_input_charset", AlipayConfig.Input_charset.ToLower());
            sParaTemp.Add("service", "create_partner_trade_by_buyer");
            sParaTemp.Add("payment_type", payment_type);
            sParaTemp.Add("notify_url", notify_url);
            sParaTemp.Add("return_url", return_url);
            sParaTemp.Add("seller_email", seller_email);
            sParaTemp.Add("out_trade_no", out_trade_no);
            sParaTemp.Add("subject", subject);
            sParaTemp.Add("price", total_fee);
            sParaTemp.Add("quantity", quantity);
            sParaTemp.Add("logistics_fee", logistics_fee);
            sParaTemp.Add("logistics_type", logistics_type);
            sParaTemp.Add("logistics_payment", logistics_payment);
            sParaTemp.Add("body", body);
            sParaTemp.Add("show_url", showUrl);
            sParaTemp.Add("receive_name", receive.Name);
            sParaTemp.Add("receive_address", receive.Address);
            sParaTemp.Add("receive_zip", receive.Zip);
            sParaTemp.Add("receive_phone", receive.Phone);
            sParaTemp.Add("receive_mobile", receive.Mobile);


            //建立请求
            return(Submit.BuildRequest(sParaTemp, "get", "确认"));
        }
Ejemplo n.º 3
0
        public string GetPayRequest(Hashtable hash)
        {
            /*接口需要的参数如下:
             * ----------------------------------
             * @product_fee : 产品价格
             * @express_fee : 快递费用
             * @orderno        : 订单号
             * @desc            : 订单描述
             * -----------------------------------
             */

            //商户号
            string partner = hash["tenpay_key"] as string;
            //密钥
            string key = hash["tenpay_secret"] as string;


            TenpayUtil.bargainor_id  = partner;
            TenpayUtil.tenpay_key    = key;
            TenpayUtil.tenpay_return = PayUtil.GetReturnUrl(PayMethods.Tenpay, PayApiType.Direct);
            TenpayUtil.tenpay_notify = PayUtil.GetNotifyUrl(PayMethods.Tenpay, PayApiType.Direct);

            int     product_fee   = (int)(((decimal)hash["order_fee"]) * 100);           //商品费用
            decimal transport_fee = decimal.Parse(hash["order_exp_fee"].ToString());     //物流费用

            string bankCode = hash.Contains("bank") ? hash["bank"].ToString() : "DEFAULT";

            string order_desc = hash["order_desc"] as string;//HttpUtility.UrlEncode( ht["order_desc"] as string);

            //订单号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string out_trade_no = hash["order_no"] as string;
            string host         = hash["usr_host"] as string;


            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");


            //创建RequestHandler实例
            RequestHandler reqHandler = new RequestHandler(HttpContext.Current);

            //初始化
            reqHandler.init();
            //设置密钥
            reqHandler.setKey(TenpayUtil.tenpay_key);
            reqHandler.setGateUrl("https://gw.tenpay.com/gateway/pay.htm");


            //-----------------------------
            //设置支付参数
            //-----------------------------
            reqHandler.setParameter("partner", TenpayUtil.bargainor_id);     //商户号
            reqHandler.setParameter("out_trade_no", out_trade_no);           //商家订单号
            reqHandler.setParameter("total_fee", product_fee.ToString());    //商品金额,以分为单位
            reqHandler.setParameter("return_url", TenpayUtil.tenpay_return); //交易完成后跳转的URL
            reqHandler.setParameter("notify_url", TenpayUtil.tenpay_notify); //接收财付通通知的URL
            reqHandler.setParameter("body", order_desc);                     //商品描述
            reqHandler.setParameter("bank_type", bankCode);                  //银行类型(中介担保时此参数无效)
            reqHandler.setParameter("spbill_create_ip", host);               //用户的公网ip,不是商户服务器IP
            reqHandler.setParameter("fee_type", "1");                        //币种,1人民币
            reqHandler.setParameter("subject", out_trade_no);                //商品名称(中介交易时必填)


            //系统可选参数
            reqHandler.setParameter("sign_type", "MD5");
            reqHandler.setParameter("service_version", "1.0");
            reqHandler.setParameter("input_charset", "UTF-8");
            reqHandler.setParameter("sign_key_index", "1");

            //业务可选参数

            reqHandler.setParameter("attach", "");                                          //附加数据,原样返回
            reqHandler.setParameter("product_fee", "0");                                    //商品费用,必须保证transport_fee + product_fee=total_fee
            reqHandler.setParameter("transport_fee", "0");                                  //物流费用,必须保证transport_fee + product_fee=total_fee
            reqHandler.setParameter("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); //订单生成时间,格式为yyyymmddhhmmss
            reqHandler.setParameter("time_expire", "");                                     //订单失效时间,格式为yyyymmddhhmmss
            reqHandler.setParameter("buyer_id", "");                                        //买方财付通账号
            reqHandler.setParameter("goods_tag", "");                                       //商品标记
            reqHandler.setParameter("trade_mode", "1");                                     //交易模式,1即时到账(默认),2中介担保,3后台选择(买家进支付中心列表选择)
            reqHandler.setParameter("transport_desc", "");                                  //物流说明
            reqHandler.setParameter("trans_type", "1");                                     //交易类型,1实物交易,2虚拟交易
            reqHandler.setParameter("agentid", "");                                         //平台ID
            reqHandler.setParameter("agent_type", "");                                      //代理模式,0无代理(默认),1表示卡易售模式,2表示网店模式
            reqHandler.setParameter("seller_id", "");                                       //卖家商户号,为空则等同于partner



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

            //Response.Redirect(requestUrl);
            return(requestUrl);
            //Get的实现方式
            // string a_link = "<a target=\"_blank\" href=\"" + requestUrl + "\">" + "财付通支付" + "</a>";
            //  Response.Write(a_link);
            // return a_link;


            //post实现方式

            /* 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信息,建议把请求和debug信息写入日志,方便定位问题
            // string debuginfo = reqHandler.getDebugInfo();
            // Response.Write("<br/>requestUrl:" + requestUrl + "<br/>");
            // Response.Write("<br/>debuginfo:" + debuginfo + "<br/>");
        }
Ejemplo n.º 4
0
        public string GetPayRequest(Hashtable hash)
        {
            string[] keys = (hash["chinapay_secret"] as string).Split('|');

            ChinaPaySignData.MerchantID     = hash["chinapay_key"] as string;
            ChinaPaySignData.PrivateKeyPath = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, keys[0]);
            ChinaPaySignData.PublicKeyPath  = String.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, keys[1]);

            //test url   //http://localhost:8080/pay/notify_3_1.html?merid=808080201301103&orderno=2013052309145966&transdate=20130523&amount=000000000001&currencycode=156&transtype=0001&status=1001&checkvalue=872E476C3C0B471CF6C408F2B311E8A89FB78D5166676B60FB06F45797F24FFAD092FDE5CE85BA084CCDEFF4097D31DA68DDCCB5A59B719E0EB1718EB2CC77FA72F0F0039AE03684CC59EE6204A2EC104B792F33321D4EC66D7A90F9C3BD7531A50FA47199FE084D4715DEC312117C8E62A673947B293472BD8B5685C67106B8&GateId=8607&Priv1=beizhu
            const string gatewayHTML = @"<!--银联支付 --><div style='display:none'>
<form id='myform'  action='https://payment.chinapay.com/pay/TransGet'   method='post' >
    <table>
        <tr>
            <td>商户号:</td>
            <td><input type='text' name='MerId' id='MerId' value='%1%' /></td>
        </tr>
         <tr>
            <td>支付版本号:</td>
            <td><input type='text' name='Version'  id='Version' value='%2%'  /></td>
        </tr>
        <tr>
            <td>订单号:</td>
            <td><input type='text' name='OrdId'  id='OrdId'  value='%3%' /></td>
        </tr>
        <tr>
            <td>订单金额:</td>
            <td><input type='text' name='TransAmt'  id='TransAmt' value='%4%' /></td>
        </tr>
        <tr>
            <td>货币代码:</td>
            <td><input type='text' name='CuryId' id='CuryId' value='%5%'  /></td>
        </tr>
        <tr>
            <td>订单日期:</td>
            <td><input type='text' name='TransDate'  id='TransDate' value='%6%'  /></td>
        </tr>
        <tr>
            <td>交易类型:</td>
            <td><input type='text' name='TransType'  id='TransType' value='%7%' /></td>
        </tr>
        <tr>
            <td>后台返回地址:</td>
            <td><input type='text' name='BgRetUrl' id='BgRetUrl' value='%8%'  /></td>
        </tr><tr>
            <td>页面返回地址:</td>
            <td><input type='text' name='PageRetUrl' id='PageRetUrl' value='%9%' /></td>
        </tr>
        <tr>
            <td>网关号:</td>
            <td><input type='text' name='GateId' id='GateId' value='%10%' /></td>
        </tr>
        <tr>
            <td>备注:</td>
            <td><input type='text' name='Priv1' id='Priv1' value='%11%' /></td>
        </tr>
        <tr>
            <td>签名:</td>
            <td><input type='text' name='ChkValue' id='ChkValue' value='%12%' /></td>
        </tr>
        
       
    </table>
     <script type='text/javascript'>
        document.getElementById('myform').submit();
    </script>
   </form></div>";


            decimal product_fee   = (decimal)hash["order_fee"];                                      //商品费用
            decimal transport_fee = decimal.Parse(hash["order_exp_fee"].ToString());                 //物流费用

            string MerId     = ChinaPaySignData.MerchantID;                                          //商户号
            string OrdId     = hash["order_no"] as string;                                           //订单号
            string TransAmt  = String.Format("{0:D12}", (int)((product_fee + transport_fee) * 100)); //订单金额
            string CuryId    = "156";                                                                //货币代码 (人民币)
            string TransDate = DateTime.Now.ToString("yyyyMMdd");                                    //订单日期
            string TransType = "0001";                                                               //交易类型
            string Priv1     = hash["order_desc"] as string;                                         //备注


            //准备签名的数据
            string plain = MerId + OrdId + TransAmt + CuryId + TransDate + TransType + Priv1;

            string ChkValue = null;

            //Response.Write("MerId:" + MerId);
            ChkValue = ChinaPaySignData.sign(MerId, plain);
            //Response.Write("ChkValue:" + ChkValue);

            //签名长度256位
            if (ChkValue == null || ChkValue.Length != 256)
            {
                return("签名不正确,无法支付!");
            }

            return(gatewayHTML.Template(
                       MerId,
                       "20070129",
                       OrdId,
                       TransAmt,
                       CuryId,
                       TransDate,
                       TransType,
                       PayUtil.GetNotifyUrl(PayMethods.ChinaPay, PayApiType.Normal),
                       PayUtil.GetReturnUrl(PayMethods.ChinaPay, PayApiType.Normal),
                       "", //网关留空,为银联支付
                       Priv1,
                       ChkValue));
        }
Ejemplo n.º 5
0
        public string GetPayRequest(Hashtable hash)
        {
            //商户号
            string partner = hash["alipay_key"].ToString();
            //密钥
            string key = hash["alipay_secret"].ToString();


            AlipayConfig.Partner = partner;
            AlipayConfig.Key     = key;


            string bankCode = hash.Contains("bank") ? hash["bank"].ToString() : "DEFAULT";

            float product_fee   = (float)hash["order_fee"];                          //商品费用
            float transport_fee = float.Parse(hash["order_exp_fee"].ToString());     //物流费用

            string order_desc = (hash["order_desc"] ?? "").ToString();;

            //订单号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string out_trade_no = hash["order_no"].ToString();
            string host         = hash["usr_host"] as string;

            string showUrl = hash["order_showurl"] as string;

            //卖家支付宝帐户
            string seller_email = hash["seller_account"] as string;

            //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
            string subject = hash["order_subject"].ToString(); //parma.desc ?? "支付订单";

            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");
            //todo
            string body = order_desc;

            //订单总金额,显示在支付宝收银台里的“应付总额”里
            string total_fee = Convert.ToString(product_fee + transport_fee);



            ////////////////////////////////////////////请求参数////////////////////////////////////////////

            //支付类型
            string payment_type = "1";
            //必填,不能修改
            //服务器异步通知页面路径


            string notify_url = hash.Contains("notify_url")?hash["notify_url"].ToString():PayUtil.GetNotifyUrl(PayMethods.Alipay, PayApiType.Direct);

            //需http://格式的完整路径,不能加?id=123这类自定义参数

            //页面跳转同步通知页面路径
            string return_url = hash.Contains("return_url")?hash["return_url"].ToString():PayUtil.GetReturnUrl(PayMethods.Alipay, PayApiType.Direct);
            //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/


            //防钓鱼时间戳
            string anti_phishing_key = "";
            //若要使用请调用类文件submit中的query_timestamp函数

            //客户端的IP地址
            string exter_invoke_ip = "";
            //非局域网的外网IP地址,如:221.0.0.1


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

            //把请求参数打包成数组
            SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();

            sParaTemp.Add("partner", AlipayConfig.Partner);
            sParaTemp.Add("_input_charset", AlipayConfig.Input_charset.ToLower());
            sParaTemp.Add("service", "create_direct_pay_by_user");
            sParaTemp.Add("payment_type", payment_type);
            sParaTemp.Add("notify_url", notify_url);
            sParaTemp.Add("return_url", return_url);
            sParaTemp.Add("seller_email", seller_email);
            sParaTemp.Add("out_trade_no", out_trade_no);
            sParaTemp.Add("subject", subject);
            sParaTemp.Add("total_fee", total_fee);
            sParaTemp.Add("body", body);
            sParaTemp.Add("show_url", showUrl);
            sParaTemp.Add("anti_phishing_key", anti_phishing_key);
            sParaTemp.Add("exter_invoke_ip", exter_invoke_ip);


            if (bankCode != "DEFAULT")
            {
                sParaTemp.Add("defaultbank", bankCode);
                sParaTemp.Add("payment", "bankPay");
            }

            //建立请求
            string sHtmlText = Submit.BuildRequest(sParaTemp, "get", "确认");


            return(sHtmlText);
        }
Ejemplo n.º 6
0
        public string GetPayRequest(Hashtable hash)
        {
            //商户号
            string partner = hash["alipay_key"] as string;
            //密钥
            string key = hash["alipay_secret"] as string;


            AlipayConfig.Partner = partner;// +"5";
            AlipayConfig.Key     = key;


            float product_fee   = (float)hash["order_fee"];                          //商品费用
            float transport_fee = float.Parse(hash["order_exp_fee"].ToString());     //物流费用

            string order_desc = hash["order_desc"] as string;

            //订单号,此处用时间和随机数生成,商户根据自己调整,保证唯一
            string out_trade_no = hash["order_no"] as string;
            string host         = hash["usr_host"] as string;

            string showUrl = hash["order_showurl"] as string;

            string notify_url = hash.Contains("notify_url")?hash["notify_url"].ToString():PayUtil.GetNotifyUrl(PayMethods.Alipay, PayApiType.Normal);

            //需http://格式的完整路径,不能加?id=123这类自定义参数

            //页面跳转同步通知页面路径
            string return_url = hash.Contains("return_url")?hash["return_url"].ToString():PayUtil.GetReturnUrl(PayMethods.Alipay, PayApiType.Normal);
            //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/


            //卖家支付宝帐户
            string seller_email = hash["seller_account"] as string;

            //订单描述、订单详细、订单备注,显示在支付宝收银台里的“商品描述”里
            string subject = hash["order_subject"].ToString(); //parma.desc ?? "支付订单";

            //当前时间 yyyyMMdd
            string date = DateTime.Now.ToString("yyyyMMdd");
            //todo
            string body = order_desc;

            //订单总金额,显示在支付宝收银台里的“应付总额”里
            string total_fee = Convert.ToString(product_fee + transport_fee);



            ////////////////////////////////////////////请求参数////////////////////////////////////////////

            //支付类型
            string payment_type = "1";

            //必填

            //商品数量
            string quantity = "1";
            //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品
            //物流费用
            string logistics_fee = transport_fee.ToString();
            //必填,即运费
            //物流类型
            string logistics_type = "EXPRESS";
            //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
            //物流支付方式
            string logistics_payment = "SELLER_PAY";
            //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
            //订单描述


            //收货人姓名
            string receive_name = hash["receive_name"] as String;
            //如:张三

            //收货人地址
            string receive_address = hash["receive_address"] as String;
            //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号

            //收货人邮编
            string receive_zip = hash["receive_zip"] as String;
            //如:123456

            //收货人电话号码
            string receive_phone = hash["receive_phone"] as String;
            //如:0571-88158090

            //收货人手机号码
            string receive_mobile = hash["receive_mobile"] as String;
            //如:13312341234


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

            //把请求参数打包成数组
            SortedDictionary <string, string> sParaTemp = new SortedDictionary <string, string>();

            sParaTemp.Add("partner", AlipayConfig.Partner);
            sParaTemp.Add("_input_charset", AlipayConfig.Input_charset.ToLower());
            sParaTemp.Add("service", "trade_create_by_buyer");
            sParaTemp.Add("payment_type", payment_type);
            sParaTemp.Add("notify_url", notify_url);
            sParaTemp.Add("return_url", return_url);
            sParaTemp.Add("seller_email", seller_email);
            sParaTemp.Add("out_trade_no", out_trade_no);
            sParaTemp.Add("subject", subject);
            sParaTemp.Add("price", total_fee);
            sParaTemp.Add("quantity", quantity);
            sParaTemp.Add("logistics_fee", logistics_fee);
            sParaTemp.Add("logistics_type", logistics_type);
            sParaTemp.Add("logistics_payment", logistics_payment);
            sParaTemp.Add("body", body);
            sParaTemp.Add("show_url", showUrl);
            sParaTemp.Add("receive_name", receive_name);
            sParaTemp.Add("receive_address", receive_address);
            sParaTemp.Add("receive_zip", receive_zip);
            sParaTemp.Add("receive_phone", receive_phone);
            sParaTemp.Add("receive_mobile", receive_mobile);

            //建立请求
            return(Submit.BuildRequest(sParaTemp, "get", "确认"));
        }