protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                ////////////////////////To receive the parameter form HTML form//////////////////////

                string interface_version  = Request.Form["interface_version"].ToString().Trim();
                string service_type       = Request.Form["service_type"].ToString().Trim();
                string sign_type          = Request.Form["sign_type"].ToString().Trim();
                string merchant_code      = Request.Form["merchant_code"].ToString().Trim();
                string order_no           = Request.Form["order_no"].ToString().Trim();
                string order_time         = Request.Form["order_time"].ToString().Trim();
                string order_amount       = Request.Form["order_amount"].ToString().Trim();
                string product_name       = Request.Form["product_name"].ToString().Trim();
                string product_code       = Request.Form["product_code"].ToString().Trim();
                string product_num        = Request.Form["product_num"].ToString().Trim();
                string product_desc       = Request.Form["product_desc"].ToString().Trim();
                string extra_return_param = Request.Form["extra_return_param"].ToString().Trim();
                string extend_param       = Request.Form["extend_param"].ToString().Trim();
                string notify_url         = Request.Form["notify_url"].ToString().Trim();
                string client_ip          = Request.Form["client_ip"].ToString().Trim();

                ////////////////Array data//////////////////
                string signStr = "";
                if (client_ip != "")
                {
                    signStr = signStr + "client_ip=" + client_ip + "&";
                }
                if (extend_param != "")
                {
                    signStr = signStr + "extend_param=" + extend_param + "&";
                }
                if (extra_return_param != "")
                {
                    signStr = signStr + "extra_return_param=" + extra_return_param + "&";
                }
                if (interface_version != "")
                {
                    signStr = signStr + "interface_version=" + interface_version + "&";
                }
                if (merchant_code != "")
                {
                    signStr = signStr + "merchant_code=" + merchant_code + "&";
                }
                if (notify_url != "")
                {
                    signStr = signStr + "notify_url=" + notify_url + "&";
                }
                if (order_amount != "")
                {
                    signStr = signStr + "order_amount=" + order_amount + "&";
                }
                if (order_no != "")
                {
                    signStr = signStr + "order_no=" + order_no + "&";
                }
                if (order_time != "")
                {
                    signStr = signStr + "order_time=" + order_time + "&";
                }
                if (product_code != "")
                {
                    signStr = signStr + "product_code=" + product_code + "&";
                }
                if (product_desc != "")
                {
                    signStr = signStr + "product_desc=" + product_desc + "&";
                }
                if (product_name != "")
                {
                    signStr = signStr + "product_name=" + product_name + "&";
                }
                if (product_num != "")
                {
                    signStr = signStr + "product_num=" + product_num + "&";
                }
                if (service_type != "")
                {
                    signStr = signStr + "service_type=" + service_type;
                }

                if (sign_type == "RSA-S")//RSA-S Sign
                {
                    //merchant private key
                    string merPriKey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALf/+xHa1fDTCsLYPJLHy80aWq3djuV1T34sEsjp7UpLmV9zmOVMYXsoFNKQIcEzei4QdaqnVknzmIl7n1oXmAgHaSUF3qHjCttscDZcTWyrbXKSNr8arHv8hGJrfNB/Ea/+oSTIY7H5cAtWg6VmoPCHvqjafW8/UP60PdqYewrtAgMBAAECgYEAofXhsyK0RKoPg9jA4NabLuuuu/IU8ScklMQIuO8oHsiStXFUOSnVeImcYofaHmzIdDmqyU9IZgnUz9eQOcYg3BotUdUPcGgoqAqDVtmftqjmldP6F6urFpXBazqBrrfJVIgLyNw4PGK6/EmdQxBEtqqgXppRv/ZVZzZPkwObEuECQQDenAam9eAuJYveHtAthkusutsVG5E3gJiXhRhoAqiSQC9mXLTgaWV7zJyA5zYPMvh6IviX/7H+Bqp14lT9wctFAkEA05ljSYShWTCFThtJxJ2d8zq6xCjBgETAdhiH85O/VrdKpwITV/6psByUKp42IdqMJwOaBgnnct8iDK/TAJLniQJABdo+RodyVGRCUB2pRXkhZjInbl+iKr5jxKAIKzveqLGtTViknL3IoD+Z4b2yayXg6H0g4gYj7NTKCH1h1KYSrQJBALbgbcg/YbeU0NF1kibk1ns9+ebJFpvGT9SBVRZ2TjsjBNkcWR2HEp8LxB6lSEGwActCOJ8Zdjh4kpQGbcWkMYkCQAXBTFiyyImO+sfCccVuDSsWS+9jrc5KadHGIvhfoRjIj2VuUKzJ+mXbmXuXnOYmsAefjnMCI6gGtaqkzl527tw=";

                    merPriKey = testOrder.HttpHelp.RSAPrivateKeyJava2DotNet(merPriKey);
                    //signature
                    string signData = testOrder.HttpHelp.RSASign(signStr, merPriKey);

                    signData = HttpUtility.UrlEncode(signData);
                    //Array data
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //post data
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.xhbill.com/gateway/api/scanpay", para);

                    //get data from XML
                    var el = XElement.Load(new StringReader(_xml));
                    //get Qrcode
                    var qrcode1 = el.XPathSelectElement("/response/qrcode");
                    if (qrcode1 == null)
                    {
                        Response.Write("msg:" + _xml + "<br/>");
                        Response.End();
                    }
                    string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;    //qrcode

                    //generate qrcode
                    My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                    string path         = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/qrcode/"; //path
                    string qrString     = qrcode;                                                                 //qrcode
                    string logoFilePath = path + "my.jpg";                                                        //Logo
                    string filePath     = path + "myCode.jpg";                                                    //qrcode name
                    qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);                   //generate
                }
                else  //RSA Sign
                {
                    RSAWithHardware rsa          = new RSAWithHardware();
                    string          merPubKeyDir = "D:/1111110166.pfx";              //certificate path
                    string          password     = "******";                       //certificate password
                    RSAWithHardware rsaWithH     = new RSAWithHardware();
                    rsaWithH.Init(merPubKeyDir, password, "D:/dinpayRSAKeyVersion"); //make the Keyversion path same with the certificate
                    string signData = rsaWithH.Sign(signStr);                        //signature
                    signData = HttpUtility.UrlEncode(signData);

                    //Array data
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //post data
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.xhbill.com/gateway/api/weixin", para);

                    //get data from XML
                    var el = XElement.Load(new StringReader(_xml));
                    //get Qrcode
                    var qrcode1 = el.XPathSelectElement("/response/qrcode");
                    if (qrcode1 == null)
                    {
                        Response.Write("msg:" + _xml + "<br/>");
                        Response.End();
                    }

                    string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //qrcode

                    //generate qrcode
                    My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                    string path         = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/qrcode/"; //path
                    string qrString     = qrcode;                                                                 //qrcode
                    string logoFilePath = path + "my.jpg";                                                        //Logo
                    string filePath     = path + "myCode.jpg";                                                    //qrcode name
                    qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);                   //generate
                }
            }
            finally{
            }
        }
Exemple #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                /////////////////////////////////接收表单提交参数////////////////////////////////////
                ////////////////////////To receive the parameter form HTML form//////////////////////

                string interface_version  = Request.Form["interface_version"].ToString().Trim();
                string service_type       = Request.Form["service_type"].ToString().Trim();
                string sign_type          = Request.Form["sign_type"].ToString().Trim();
                string merchant_code      = Request.Form["merchant_code"].ToString().Trim();
                string order_no           = Request.Form["order_no"].ToString().Trim();
                string order_time         = Request.Form["order_time"].ToString().Trim();
                string order_amount       = Request.Form["order_amount"].ToString().Trim();
                string product_name       = Request.Form["product_name"].ToString().Trim();
                string product_code       = Request.Form["product_code"].ToString().Trim();
                string product_num        = Request.Form["product_num"].ToString().Trim();
                string product_desc       = Request.Form["product_desc"].ToString().Trim();
                string extra_return_param = Request.Form["extra_return_param"].ToString().Trim();
                string extend_param       = Request.Form["extend_param"].ToString().Trim();
                string notify_url         = Request.Form["notify_url"].ToString().Trim();
                string client_ip          = Request.Form["client_ip"].ToString().Trim();

                ////////////////组装签名参数//////////////////
                string signStr = "";
                if (client_ip != "")
                {
                    signStr = signStr + "client_ip=" + client_ip + "&";
                }
                if (extend_param != "")
                {
                    signStr = signStr + "extend_param=" + extend_param + "&";
                }
                if (extra_return_param != "")
                {
                    signStr = signStr + "extra_return_param=" + extra_return_param + "&";
                }
                if (interface_version != "")
                {
                    signStr = signStr + "interface_version=" + interface_version + "&";
                }
                if (merchant_code != "")
                {
                    signStr = signStr + "merchant_code=" + merchant_code + "&";
                }
                if (notify_url != "")
                {
                    signStr = signStr + "notify_url=" + notify_url + "&";
                }
                if (order_amount != "")
                {
                    signStr = signStr + "order_amount=" + order_amount + "&";
                }
                if (order_no != "")
                {
                    signStr = signStr + "order_no=" + order_no + "&";
                }
                if (order_time != "")
                {
                    signStr = signStr + "order_time=" + order_time + "&";
                }
                if (product_code != "")
                {
                    signStr = signStr + "product_code=" + product_code + "&";
                }
                if (product_desc != "")
                {
                    signStr = signStr + "product_desc=" + product_desc + "&";
                }
                if (product_name != "")
                {
                    signStr = signStr + "product_name=" + product_name + "&";
                }
                if (product_num != "")
                {
                    signStr = signStr + "product_num=" + product_num + "&";
                }
                if (service_type != "")
                {
                    signStr = signStr + "service_type=" + service_type;
                }

                if (sign_type == "RSA-S")//RSA-S签名方法
                {
                    //商家私钥
                    string merchant_private_key = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKn93SEpidIRKTYRqvjb6qW6iS8eorY/5nPwBE2xk7tdulDsWCZzLtt9oSCDZj6QTFXjXQZKO03cyvVPS5gZ1MIeW0ARkfcwdrJ6EawonKS909lIflCfCKCC9oCqHIhFXFmK9AU6UjcTwE5nwwb3K689Ng+6SEVjHMendtV3OTjDAgMBAAECgYBxx+QtADqpiqcE88p2i+yBRVvxWBYc2qSL0Ylv3348mT3OUIOoKMyiSXKB6rGTCs6tZmOrhCAxu6l1jL/SbOfEd33TSUmMSTAyLhq3Uc1kRa9D8u7hJHqHRJeG5NNU/rJy5t9ncBI9ktEKpWKQpix1WfqSsfeO+TKUfMNWOlDmIQJBANEqg7UrJ68n2rFpN281HDsVR12IQnBKyFtDqBZ33bWXR+yAXRexwLUvPZYaBuBEp9KcIBee9g0J6IY8W84Z5GsCQQDQDdsHOhAd01KhANnGz7FkIbac9vEohbovzlMeOPV7wXbsZR+ZrqJXzhbuvU8sjCGDItf5KRCtT+rjIofGJNMJAkEAos1WinK2hqycma3tic9q08nyLCjcnY53eCGm+SX/GVJQlxIqY0DlX6EPbH+Bjpmhjloa2IfPt8JYi/L6+eZJVQJANCfVCXm/wopQQ3ZAIbu9H3noGm85Q0xKwWM6qO/kcjKsilRLWK5TmilazFx+tY8nc4VPmPF3ccr/+hKU8NIYaQJBAL+bKSa+9N3aR1OnCfBf7Tf5hvCVCR7gKoo5llOH3yo+pNLBDdI4TDDueSoK0UD8t1nodrgZMc/sbch+9zWswQA=";
                    //私钥转换成C#专用私钥
                    merchant_private_key = testOrder.HttpHelp.RSAPrivateKeyJava2DotNet(merchant_private_key);
                    //签名
                    string signData = testOrder.HttpHelp.RSASign(signStr, merchant_private_key);
                    //将signData进行UrlEncode编码
                    signData = HttpUtility.UrlEncode(signData);
                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.wordfod.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将QRcode从XML中提取出来
                    var payURL = el.XPathSelectElement("/response/payURL");
                    if (payURL == null)
                    {
                        Response.Write("状态:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(payURL.ToString(), "(?<=>).*?(?=<)").Value;    //二维码链接

                    //将支付链接在手机浏览器上打开自动唤醒微信app
                    //Response.Write("<script language='javascript'>window.open('" + qrcode + "');</script>");
                }
                else  //RSA签名方法
                {
                    RSAWithHardware rsa          = new RSAWithHardware();
                    string          merPubKeyDir = "D:/588001002211.pfx";            //证书路径
                    string          password     = "******";                       //证书密码
                    RSAWithHardware rsaWithH     = new RSAWithHardware();
                    rsaWithH.Init(merPubKeyDir, password, "D:/dinpayRSAKeyVersion"); //初始化(version路径需跟证书一致,证书会自动生成version)
                    string signData = rsaWithH.Sign(signStr);                        //签名
                    signData = HttpUtility.UrlEncode(signData);                      //将signData进行UrlEncode编码

                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.wordfod.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将XML中的参数逐个提取出来
                    var qrcode1 = el.XPathSelectElement("/response/qrcode");
                    if (qrcode1 == null)
                    {
                        Response.Write("错误:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //二维码链接

                    //将支付链接生成二维码
                    My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                    string path         = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/qrcode/"; //文件目录
                    string qrString     = qrcode;                                                                 //二维码字符串
                    string logoFilePath = path + "my.jpg";                                                        //商家Logo路径
                    string filePath     = path + "myCode.jpg";                                                    //二维码文件名
                    qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);                   //生成二维码
                }
            }
            finally{
            }
        }
Exemple #3
0
        protected void Page_Load(object sender, EventArgs e)
        {

         


            if (string.IsNullOrEmpty(Request.QueryString["tok"]))
            {
                Response.End();
                return;
            }
            //构建支付链接
            //根据订单唯一id获取订单信息
            IRecordTempService recordService = IoC.Resolve<IRecordTempService>();
            var item = recordService.GetAll().Where(c => c.Guid == Request.QueryString["tok"]).FirstOrDefault();
            if (null == item)
            {

                Response.End();
                return;
            }
            if (item.IsCompled || !item.IsEnable)
            {
                Response.Write("请勿重复提交订单!");
                return;
            }
            var userAmt = Math.Round(item.TradeAmt, 2).ToString();
            showProce = userAmt;
            if (userAmt.IndexOf(".") < 0)
                userAmt = userAmt + ".00";

            if (!IsPostBack)
            {
                
                try
                {
                    /////////////////////////////////接收表单提交参数////////////////////////////////////
                    ////////////////////////To receive the parameter form HTML form//////////////////////
                    
                    string interface_version = "V3.0";//Request.Form["interface_version"].ToString().Trim();
                    string service_type = "wxpay";//Request.Form["service_type"].ToString().Trim();
                    string sign_type = "RSA-S";//Request.Form["sign_type"].ToString().Trim();
                    string merchant_code = Ytg.ServerWeb.Views.pay.zhifu.ZhiFuPayConfig.Merchant_code;// Request.Form["merchant_code"].ToString().Trim();
                    string order_no = item.MY18FY;//Request.Form["order_no"].ToString().Trim();
                    string order_time = item.OccDate.ToString("yyyy-MM-dd HH:mm:ss"); //Request.Form["order_time"].ToString().Trim();
                    string order_amount = userAmt;// Request.Form["order_amount"].ToString().Trim();
                    string product_name = "乐诚网在线充值";//Request.Form["product_name"].ToString().Trim();
                    string product_code = "mhpro";//Request.Form["product_code"].ToString().Trim();
                    string product_num = "1";// Request.Form["product_num"].ToString().Trim();
                    string product_desc = "";//Request.Form["product_desc"].ToString().Trim();
                    string extra_return_param = "";// Request.Form["extra_return_param"].ToString().Trim();
                    string extend_param = "";//Request.Form["extend_param"].ToString().Trim();
                    string notify_url = Ytg.ServerWeb.Views.pay.zhifu.ZhiFuPayConfig.Notify_url;//Request.Form["notify_url"].ToString().Trim();

                    ////////////////组装签名参数//////////////////
                    string signStr = "";

                    if (extend_param != "")
                    {
                        signStr = signStr + "extend_param=" + extend_param + "&";
                    }
                    if (extra_return_param != "")
                    {
                        signStr = signStr + "extra_return_param=" + extra_return_param + "&";
                    }
                    if (interface_version != "")
                    {
                        signStr = signStr + "interface_version=" + interface_version + "&";
                    }
                    if (merchant_code != "")
                    {
                        signStr = signStr + "merchant_code=" + merchant_code + "&";
                    }
                    if (notify_url != "")
                    {
                        signStr = signStr + "notify_url=" + notify_url + "&";
                    }
                    if (order_amount != "")
                    {
                        signStr = signStr + "order_amount=" + order_amount + "&";
                    }
                    if (order_no != "")
                    {
                        signStr = signStr + "order_no=" + order_no + "&";
                    }
                    if (order_time != "")
                    {
                        signStr = signStr + "order_time=" + order_time + "&";
                    }
                    if (product_code != "")
                    {
                        signStr = signStr + "product_code=" + product_code + "&";
                    }
                    if (product_desc != "")
                    {
                        signStr = signStr + "product_desc=" + product_desc + "&";
                    }
                    if (product_name != "")
                    {
                        signStr = signStr + "product_name=" + product_name + "&";
                    }
                    if (product_num != "")
                    {
                        signStr = signStr + "product_num=" + product_num + "&";
                    }
                    if (service_type != "")
                    {
                        signStr = signStr + "service_type=" + service_type;
                    }

                    if (sign_type == "RSA-S")//RSA-S签名方法
                    {
                        //商家私钥
                        string merPriKey = ZhiFuPayConfig.Merchant_private_key;//"MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALf/+xHa1fDTCsLYPJLHy80aWq3djuV1T34sEsjp7UpLmV9zmOVMYXsoFNKQIcEzei4QdaqnVknzmIl7n1oXmAgHaSUF3qHjCttscDZcTWyrbXKSNr8arHv8hGJrfNB/Ea/+oSTIY7H5cAtWg6VmoPCHvqjafW8/UP60PdqYewrtAgMBAAECgYEAofXhsyK0RKoPg9jA4NabLuuuu/IU8ScklMQIuO8oHsiStXFUOSnVeImcYofaHmzIdDmqyU9IZgnUz9eQOcYg3BotUdUPcGgoqAqDVtmftqjmldP6F6urFpXBazqBrrfJVIgLyNw4PGK6/EmdQxBEtqqgXppRv/ZVZzZPkwObEuECQQDenAam9eAuJYveHtAthkusutsVG5E3gJiXhRhoAqiSQC9mXLTgaWV7zJyA5zYPMvh6IviX/7H+Bqp14lT9wctFAkEA05ljSYShWTCFThtJxJ2d8zq6xCjBgETAdhiH85O/VrdKpwITV/6psByUKp42IdqMJwOaBgnnct8iDK/TAJLniQJABdo+RodyVGRCUB2pRXkhZjInbl+iKr5jxKAIKzveqLGtTViknL3IoD+Z4b2yayXg6H0g4gYj7NTKCH1h1KYSrQJBALbgbcg/YbeU0NF1kibk1ns9+ebJFpvGT9SBVRZ2TjsjBNkcWR2HEp8LxB6lSEGwActCOJ8Zdjh4kpQGbcWkMYkCQAXBTFiyyImO+sfCccVuDSsWS+9jrc5KadHGIvhfoRjIj2VuUKzJ+mXbmXuXnOYmsAefjnMCI6gGtaqkzl527tw=";
                                                                               //私钥转换成C#专用私钥
                        merPriKey = testOrder.wechart.HttpHelp.RSAPrivateKeyJava2DotNet(merPriKey);
                        //签名
                        string signData = testOrder.wechart.HttpHelp.RSASign(signStr, merPriKey);
                        //将signData进行UrlEncode编码
                        signData = HttpUtility.UrlEncode(signData);
                        //组装字符串
                        string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                        //将字符串发送到Dinpay网关
                        string _xml = testOrder.wechart.HttpHelp.HttpPost("https://api.dinpay.com/gateway/api/weixin", para);

                        //将同步返回的xml中的参数提取出来
                        var el = XElement.Load(new StringReader(_xml));
                        //将XML中的参数逐个提取出来
                        var qrcode1 = el.XPathSelectElement("/response/trade/qrcode");
                        var resp_code1 = el.XPathSelectElement("/response/resp_code");
                        var resp_desc1 = el.XPathSelectElement("/response/resp_desc");
                        var dinpaysign1 = el.XPathSelectElement("/response/sign");
                        if (qrcode1 == null)
                        {
                            //Response.Write("状态:" + _xml + "<br/>");
                            Response.End();
                        }
                        //去掉首尾的标签并转换成string
                        string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //二维码链接
                        string resp_code = Regex.Match(resp_code1.ToString(), "(?<=>).*?(?=<)").Value;
                        string resp_desc = Regex.Match(resp_desc1.ToString(), "(?<=>).*?(?=<)").Value;
                        string dinpaysign = Regex.Match(dinpaysign1.ToString(), "(?<=>).*?(?=<)").Value;
                        string signsrc = "qrcode=" + qrcode + "&resp_code=" + resp_code + "&resp_desc=" + resp_desc;
                        //使用智付公钥对返回的数据验签

                        try
                        {
                            //将智付公钥转换成C#专用格式
                            dinpayPubKey = testOrder.wechart.HttpHelp.RSAPublicKeyJava2DotNet(dinpayPubKey);
                        }
                        catch (Exception ex)
                        {
                          //  Response.Write(ex.Message);
                        }
                        //验签
                        bool validateResult = testOrder.wechart.HttpHelp.ValidateRsaSign(signsrc, dinpayPubKey, dinpaysign);

                        if (validateResult == false)
                        {
                            Response.Write("失败");
                            Response.End();
                        }
                        //验签成功后将支付链接生成二维码
                        My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                        string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/Views/pay/zhifu/wechart/qrcode/";  //文件目录   
                        string qrString = qrcode;                                                            //二维码字符串  
                        string logoFilePath = path + "my.png";//商家Logo文件 
                        fileName = "myCode" + Guid.NewGuid().ToString() + ".jpg";
                        string filePath = path + fileName;                                             //二维码文件名  
                        qr.CreateQRCode(qrcode, "Byte", 6, 6, "H", filePath, true, logoFilePath);       //生成二维码
                        //Response.Write(qrcode+"<br/>");
                        //Response.Write("结果:" + signsrc + "<br/>");
                       // Response.Write("验签结果:" + validateResult + "<br/>");
                        //Response.End();

                    }
                    else  //RSA签名方法
                    {
                        RSAWithHardware rsa = new RSAWithHardware();
                        string merPubKeyDir = "D:/1111110166.pfx";   //证书路径
                        string password = "******";                //证书密码
                        RSAWithHardware rsaWithH = new RSAWithHardware();
                        rsaWithH.Init(merPubKeyDir, password, "D:/dinpayRSAKeyVersion");//初始化(version路径需跟证书一致,证书会自动生成version)
                        string signData = rsaWithH.Sign(signStr);    //签名
                        signData = HttpUtility.UrlEncode(signData);  //将signData进行UrlEncode编码

                        //组装字符串
                        string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                        //将字符串发送到Dinpay网关
                        string _xml = testOrder.wechart.HttpHelp.HttpPost("https://api.dinpay.com/gateway/api/weixin", para);

                        //将同步返回的xml中的参数提取出来
                        var el = XElement.Load(new StringReader(_xml));
                        //将XML中的参数逐个提取出来
                        var qrcode1 = el.XPathSelectElement("/response/trade/qrcode");
                        var resp_code1 = el.XPathSelectElement("/response/resp_code");
                        var resp_desc1 = el.XPathSelectElement("/response/resp_desc");
                        var dinpaysign1 = el.XPathSelectElement("/response/sign");
                        if (qrcode1 == null)
                        {
                            Response.Write("错误:" + _xml + "<br/>");
                            Response.End();
                        }
                        //去掉首尾的标签并转换成string
                        string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //二维码链接
                        string resp_code = Regex.Match(resp_code1.ToString(), "(?<=>).*?(?=<)").Value;
                        string resp_desc = Regex.Match(resp_desc1.ToString(), "(?<=>).*?(?=<)").Value;
                        string dinpaysign = Regex.Match(dinpaysign1.ToString(), "(?<=>).*?(?=<)").Value;

                        //组装验签字符串
                        string signsrc = "qrcode=" + qrcode + "&resp_code=" + resp_code + "&resp_desc=" + resp_desc;
                        //RSA验签
                        bool result = rsaWithH.VerifySign("1111110166", signsrc, dinpaysign);
                        if (result == false)
                        {
                            Response.Write("验签失败");
                            Response.End();
                        }
                        //验签成功后将支付链接生成二维码
                        //My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                        //string path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/Views/pay/zhifu/wechart/qrcode/";  //文件目录  
                        //string qrString = qrcode;                                                             //二维码字符串  
                        //string logoFilePath = path + "my.jpg";                                               //商家Logo路径  
                        //string filePath = path + "myCode.jpg";                                              //二维码文件名  
                        //qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);        //生成二维码

                        //Response.Write("结果:" + signsrc + "<br/>");
                        //Response.Write("验签结果:" + result + "<br/>");
                        //Response.End();
                    }
                }
                finally
                {
                }
            }
        }
Exemple #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                /////////////////////////////////接收表单提交参数////////////////////////////////////
                ////////////////////////To receive the parameter form HTML form//////////////////////

                string interface_version  = Request.Form["interface_version"].ToString().Trim();
                string service_type       = Request.Form["service_type"].ToString().Trim();
                string sign_type          = Request.Form["sign_type"].ToString().Trim();
                string merchant_code      = Request.Form["merchant_code"].ToString().Trim();
                string order_no           = Request.Form["order_no"].ToString().Trim();
                string order_time         = Request.Form["order_time"].ToString().Trim();
                string order_amount       = Request.Form["order_amount"].ToString().Trim();
                string product_name       = Request.Form["product_name"].ToString().Trim();
                string product_code       = Request.Form["product_code"].ToString().Trim();
                string product_num        = Request.Form["product_num"].ToString().Trim();
                string product_desc       = Request.Form["product_desc"].ToString().Trim();
                string extra_return_param = Request.Form["extra_return_param"].ToString().Trim();
                string extend_param       = Request.Form["extend_param"].ToString().Trim();
                string notify_url         = Request.Form["notify_url"].ToString().Trim();
                string client_ip          = Request.Form["client_ip"].ToString().Trim();

                ////////////////组装签名参数//////////////////
                string signStr = "";
                if (client_ip != "")
                {
                    signStr = signStr + "client_ip=" + client_ip + "&";
                }
                if (extend_param != "")
                {
                    signStr = signStr + "extend_param=" + extend_param + "&";
                }
                if (extra_return_param != "")
                {
                    signStr = signStr + "extra_return_param=" + extra_return_param + "&";
                }
                if (interface_version != "")
                {
                    signStr = signStr + "interface_version=" + interface_version + "&";
                }
                if (merchant_code != "")
                {
                    signStr = signStr + "merchant_code=" + merchant_code + "&";
                }
                if (notify_url != "")
                {
                    signStr = signStr + "notify_url=" + notify_url + "&";
                }
                if (order_amount != "")
                {
                    signStr = signStr + "order_amount=" + order_amount + "&";
                }
                if (order_no != "")
                {
                    signStr = signStr + "order_no=" + order_no + "&";
                }
                if (order_time != "")
                {
                    signStr = signStr + "order_time=" + order_time + "&";
                }
                if (product_code != "")
                {
                    signStr = signStr + "product_code=" + product_code + "&";
                }
                if (product_desc != "")
                {
                    signStr = signStr + "product_desc=" + product_desc + "&";
                }
                if (product_name != "")
                {
                    signStr = signStr + "product_name=" + product_name + "&";
                }
                if (product_num != "")
                {
                    signStr = signStr + "product_num=" + product_num + "&";
                }
                if (service_type != "")
                {
                    signStr = signStr + "service_type=" + service_type;
                }

                if (sign_type == "RSA-S")//RSA-S签名方法
                {
                    //商家私钥
                    string merchant_private_key = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOD/K22eGec3qNQmk9LwsjpbJDJE9JYfsTJJQGJhfWsKbcZ9UISKXZxuhSCVaf2z9/pEln5RoE7GNwOrYv8R00P8nRJONHNPaLcf0Y8+c6DBWGVewZKojUzn18uAEGGW5XMjLs5/OU//opRB4ieeSmBJ4jp954XfR4Z57bjOpe/3AgMBAAECgYEArCr2K2JQxfp0aSq/8SkX6Mm3T/QuCPZlXGprJx0coJ0RVVKtG07ZxQtZOY671VQyjEKRukVx2vWYQWmTTkVwl+U71fh1mmiu00Y3odNoERc02ZN0zJmrSuhbcuEv6F8kBATunB55wOZ3jlbkXD9h+KUyePBOkrPb+81LhJ6kZXkCQQD18nQ1U2m9laS8ROJmZ1LuecQ4maaHW3xFxHoM9sS1YcpB3peQuXBrKa483zYADIJV2NYstc0QXMMZIXleKFFzAkEA6jF+xx4q+p/lhH8M3rHucHmkgFce90Jh1eHTdx5czizl3LiOYZ5D7cNL8x7piJDMmzkVz8+OidXm0wf5aT82bQJAP9TSJjjk26hn3dj+7Vbppi0CKTJvjvfGdBD/IDg3a1/a72eG7K/EJnvl1bSUvkSA2yjwxR/V/eYlWHNgnXhXUwJBANA6h+3FfhNvXmSrjqbncAljrwdJ70eMJ29DpoFQZtYPB6Z0FmzniqB6OCqIPr7leHc/j4xBkQwvO1hBy9pvkRUCQEVOGouGVeiXL/MuupUdbdBSV4nkYb9hrqE11gzbLu4A+OCpV8Xwdqu5SqX9Js1mQ6vQwTHu63vyfpxxl7oN9Jw=";
                    //私钥转换成C#专用私钥
                    merchant_private_key = testOrder.HttpHelp.RSAPrivateKeyJava2DotNet(merchant_private_key);
                    //签名
                    string signData = testOrder.HttpHelp.RSASign(signStr, merchant_private_key);
                    //将signData进行UrlEncode编码
                    signData = HttpUtility.UrlEncode(signData);
                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到w付网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.zdfmf.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将QRcode从XML中提取出来
                    var payURL = el.XPathSelectElement("/response/payURL");
                    if (payURL == null)
                    {
                        Response.Write("状态:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(payURL.ToString(), "(?<=>).*?(?=<)").Value;    //二维码链接

                    //将支付链接在手机浏览器上打开自动唤醒微信app
                    //Response.Write("<script language='javascript'>window.open('" + qrcode + "');</script>");
                }
                else  //RSA签名方法
                {
                    RSAWithHardware rsa          = new RSAWithHardware();
                    string          merPubKeyDir = "D:/1111110166.pfx";              //证书路径
                    string          password     = "******";                       //证书密码
                    RSAWithHardware rsaWithH     = new RSAWithHardware();
                    rsaWithH.Init(merPubKeyDir, password, "D:/dinpayRSAKeyVersion"); //初始化(version路径需跟证书一致,证书会自动生成version)
                    string signData = rsaWithH.Sign(signStr);                        //签名
                    signData = HttpUtility.UrlEncode(signData);                      //将signData进行UrlEncode编码

                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到w付网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.zdfmf.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将XML中的参数逐个提取出来
                    var qrcode1 = el.XPathSelectElement("/response/qrcode");
                    if (qrcode1 == null)
                    {
                        Response.Write("错误:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //二维码链接

                    //将支付链接生成二维码
                    My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                    string path         = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/qrcode/"; //文件目录
                    string qrString     = qrcode;                                                                 //二维码字符串
                    string logoFilePath = path + "my.jpg";                                                        //商家Logo路径
                    string filePath     = path + "myCode.jpg";                                                    //二维码文件名
                    qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);                   //生成二维码
                }
            }
            finally{
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                /////////////////////////////////接收表单提交参数////////////////////////////////////
                ////////////////////////To receive the parameter form HTML form//////////////////////

                string interface_version  = Request.Form["interface_version"].ToString().Trim();
                string service_type       = Request.Form["service_type"].ToString().Trim();
                string sign_type          = Request.Form["sign_type"].ToString().Trim();
                string merchant_code      = Request.Form["merchant_code"].ToString().Trim();
                string order_no           = Request.Form["order_no"].ToString().Trim();
                string order_time         = Request.Form["order_time"].ToString().Trim();
                string order_amount       = Request.Form["order_amount"].ToString().Trim();
                string product_name       = Request.Form["product_name"].ToString().Trim();
                string product_code       = Request.Form["product_code"].ToString().Trim();
                string product_num        = Request.Form["product_num"].ToString().Trim();
                string product_desc       = Request.Form["product_desc"].ToString().Trim();
                string extra_return_param = Request.Form["extra_return_param"].ToString().Trim();
                string extend_param       = Request.Form["extend_param"].ToString().Trim();
                string notify_url         = Request.Form["notify_url"].ToString().Trim();
                string client_ip          = Request.Form["client_ip"].ToString().Trim();

                ////////////////组装签名参数//////////////////
                string signStr = "";
                if (client_ip != "")
                {
                    signStr = signStr + "client_ip=" + client_ip + "&";
                }
                if (extend_param != "")
                {
                    signStr = signStr + "extend_param=" + extend_param + "&";
                }
                if (extra_return_param != "")
                {
                    signStr = signStr + "extra_return_param=" + extra_return_param + "&";
                }
                if (interface_version != "")
                {
                    signStr = signStr + "interface_version=" + interface_version + "&";
                }
                if (merchant_code != "")
                {
                    signStr = signStr + "merchant_code=" + merchant_code + "&";
                }
                if (notify_url != "")
                {
                    signStr = signStr + "notify_url=" + notify_url + "&";
                }
                if (order_amount != "")
                {
                    signStr = signStr + "order_amount=" + order_amount + "&";
                }
                if (order_no != "")
                {
                    signStr = signStr + "order_no=" + order_no + "&";
                }
                if (order_time != "")
                {
                    signStr = signStr + "order_time=" + order_time + "&";
                }
                if (product_code != "")
                {
                    signStr = signStr + "product_code=" + product_code + "&";
                }
                if (product_desc != "")
                {
                    signStr = signStr + "product_desc=" + product_desc + "&";
                }
                if (product_name != "")
                {
                    signStr = signStr + "product_name=" + product_name + "&";
                }
                if (product_num != "")
                {
                    signStr = signStr + "product_num=" + product_num + "&";
                }
                if (service_type != "")
                {
                    signStr = signStr + "service_type=" + service_type;
                }

                if (sign_type == "RSA-S")//RSA-S签名方法
                {
                    //商家私钥
                    string merchant_private_key = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBANilQBp9xg6KdgB+6jVnIFnMl34jR3sGguvDjAgTLTqYd/FhkSbNl24rbRKDjZ4jqDKxFFUbFlqMd0YuSzhE+Utb1jNcBROTyIn/2O0cCmN0tPFaSgL/ywYhXSjT1FlAWuFbBV+bggj8CLDUpTGm31BofJA/qmg9Kn/wW2aF8QjNAgMBAAECgYEAyALgiNSfeqM4SELjxcPc6SrqngjCIIGlczbI3FegBR3odlBmatWaPZsYCuSrZVl0GsDDjcMBQz21jHSG+38qS0WTxWrMgw/k88ygbfDXWEZQd1v8Em7CDIFN5rZ7InS2GZsDDl5HhBHFKp6eoGug+Xo7Z5O8GokYaGKCdOuVcUECQQD9NRF05NTp0BzGxfVkcWmJeYI23vH+No8nPed4OZSA2gNtpz7mZ2NE7lw05skznf4bVxWTanlynorYD32fejfdAkEA2wjzKggsxfiy4FkPpq9Q04FooQt+W8efD4EOWuYMOVNoOAJYmjzE8YY2XUkaEZ80NHnCJcEZ/UtSX4OqL/f9sQJBANcazTCr8cCL/tZSd8yTmF+krR1mOtiGiwiAS3LUH7dy/jSaPxJHRIrbn9OFN+o0zxl02qx4aKIZ08QHLOZdUrUCQQDagA4a8va/Mv42QYIUdLV7mI+of8+4fOWW0NZiJTUyhprjrKt4iYCps4pN+tuvkpLAemoLwZtMi7QLpkvC+G+xAkAtOkom2PugToM5QiM4MS7puinFV89SEsVQuGvHyyJ/iH8O6igd5XrH1AR7kL879onPTvARTz+Ai7bHq3mUD3Wr";
                    //私钥转换成C#专用私钥
                    merchant_private_key = testOrder.HttpHelp.RSAPrivateKeyJava2DotNet(merchant_private_key);
                    //签名
                    string signData = testOrder.HttpHelp.RSASign(signStr, merchant_private_key);
                    //将signData进行UrlEncode编码
                    signData = HttpUtility.UrlEncode(signData);
                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到智宝付网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.islpay.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将QRcode从XML中提取出来
                    var payURL = el.XPathSelectElement("/response/payURL");
                    if (payURL == null)
                    {
                        Response.Write("状态:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(payURL.ToString(), "(?<=>).*?(?=<)").Value;    //二维码链接

                    //将支付链接在手机浏览器上打开自动唤醒微信app
                    //Response.Write("<script language='javascript'>window.open('" + qrcode + "');</script>");
                }
                else  //RSA签名方法
                {
                    RSAWithHardware rsa          = new RSAWithHardware();
                    string          merPubKeyDir = "D:/1111110166.pfx";              //证书路径
                    string          password     = "******";                       //证书密码
                    RSAWithHardware rsaWithH     = new RSAWithHardware();
                    rsaWithH.Init(merPubKeyDir, password, "D:/dinpayRSAKeyVersion"); //初始化(version路径需跟证书一致,证书会自动生成version)
                    string signData = rsaWithH.Sign(signStr);                        //签名
                    signData = HttpUtility.UrlEncode(signData);                      //将signData进行UrlEncode编码

                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到速龙网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.islpay.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将XML中的参数逐个提取出来
                    var qrcode1 = el.XPathSelectElement("/response/qrcode");
                    if (qrcode1 == null)
                    {
                        Response.Write("错误:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //二维码链接

                    //将支付链接生成二维码
                    My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                    string path         = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/qrcode/"; //文件目录
                    string qrString     = qrcode;                                                                 //二维码字符串
                    string logoFilePath = path + "my.jpg";                                                        //商家Logo路径
                    string filePath     = path + "myCode.jpg";                                                    //二维码文件名
                    qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);                   //生成二维码
                }
            }
            finally{
            }
        }
Exemple #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                /////////////////////////////////接收表单提交参数////////////////////////////////////
                ////////////////////////To receive the parameter form HTML form//////////////////////

                string interface_version  = Request.Form["interface_version"].ToString().Trim();
                string service_type       = Request.Form["service_type"].ToString().Trim();
                string sign_type          = Request.Form["sign_type"].ToString().Trim();
                string merchant_code      = Request.Form["merchant_code"].ToString().Trim();
                string order_no           = Request.Form["order_no"].ToString().Trim();
                string order_time         = Request.Form["order_time"].ToString().Trim();
                string order_amount       = Request.Form["order_amount"].ToString().Trim();
                string product_name       = Request.Form["product_name"].ToString().Trim();
                string product_code       = Request.Form["product_code"].ToString().Trim();
                string product_num        = Request.Form["product_num"].ToString().Trim();
                string product_desc       = Request.Form["product_desc"].ToString().Trim();
                string extra_return_param = Request.Form["extra_return_param"].ToString().Trim();
                string extend_param       = Request.Form["extend_param"].ToString().Trim();
                string notify_url         = Request.Form["notify_url"].ToString().Trim();
                string client_ip          = Request.Form["client_ip"].ToString().Trim();

                ////////////////组装签名参数//////////////////
                string signStr = "";
                if (client_ip != "")
                {
                    signStr = signStr + "client_ip=" + client_ip + "&";
                }
                if (extend_param != "")
                {
                    signStr = signStr + "extend_param=" + extend_param + "&";
                }
                if (extra_return_param != "")
                {
                    signStr = signStr + "extra_return_param=" + extra_return_param + "&";
                }
                if (interface_version != "")
                {
                    signStr = signStr + "interface_version=" + interface_version + "&";
                }
                if (merchant_code != "")
                {
                    signStr = signStr + "merchant_code=" + merchant_code + "&";
                }
                if (notify_url != "")
                {
                    signStr = signStr + "notify_url=" + notify_url + "&";
                }
                if (order_amount != "")
                {
                    signStr = signStr + "order_amount=" + order_amount + "&";
                }
                if (order_no != "")
                {
                    signStr = signStr + "order_no=" + order_no + "&";
                }
                if (order_time != "")
                {
                    signStr = signStr + "order_time=" + order_time + "&";
                }
                if (product_code != "")
                {
                    signStr = signStr + "product_code=" + product_code + "&";
                }
                if (product_desc != "")
                {
                    signStr = signStr + "product_desc=" + product_desc + "&";
                }
                if (product_name != "")
                {
                    signStr = signStr + "product_name=" + product_name + "&";
                }
                if (product_num != "")
                {
                    signStr = signStr + "product_num=" + product_num + "&";
                }
                if (service_type != "")
                {
                    signStr = signStr + "service_type=" + service_type;
                }

                if (sign_type == "RSA-S")//RSA-S签名方法
                {
                    //商家私钥
                    string merchant_private_key = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOlji/yfZS3DKefgXJandiPPlheoJeOPgiqdy7WO5kYDxpYIbcmJXp1sIxC0MqY5pyWIOyBlW/NHWDfRyTIYvFm6vxx9m/TeTYKRXHPNdCefXNeV5XoCB7s7gJoeqR1qwgBE0a2Sw4slMrKL4LSv0J0o3po9SgYhP06m3az9dZzDAgMBAAECgYEAgLGdvX1/Y06cyvnS1FgfMvwCvaTAz8yQcEN20vSrUaw/Uvfu4hTXkWLRqyJSU4qy+mU2hVSe8XVD1fPeR7uQD7TWqmXCaIC12DqWFvA2Eio/x4nIixj5t4PN4lbUVBHH/OnHypRWFNcQemR4OWcYCWi5/cYshEaOk9XQnUQKvcECQQD7ZBDA+d8IXM7jtlNNEp+ySw87iz8pKhBoVt3XrAkGczuM9A+ZY+ReViHVxuxqd5AgxSPj1hoQeFR0BnPEVKgzAkEA7ar8kvzp9sPMDujN9QSr+yq73CTlRr8W5q0vMCxsJagie6znvtsAzka3EkI0Srix5fHjRWrWWknblDat5CnpMQJAGfYLhOJJFiP/eaSqlZsGwvLdb9jBfQ7LAvt1jYBGrlPYIoZR1hVq0BM1C06vu479Y2T4f97scib7EcBY1D2p4QJALvdmOEngllI1BhE9ehj1P4o/W46y/FsQ1H8O3y84I+zo+5W8qjuvGhRhYytQGCANj8pQRkyJlYgY614u2PLrUQJAAv9neGYMeFdZnanlsdg6EepWAzvT2tv45WF74BQKJzZF+IFtE1XD85QcqkOJ3o8WgVwXK6/BCn5vNahImz+Ohg==";
                    //私钥转换成C#专用私钥
                    merchant_private_key = testOrder.HttpHelp.RSAPrivateKeyJava2DotNet(merchant_private_key);
                    //签名
                    string signData = testOrder.HttpHelp.RSASign(signStr, merchant_private_key);
                    //将signData进行UrlEncode编码
                    signData = HttpUtility.UrlEncode(signData);
                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到亿宝通网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.syycwx.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将QRcode从XML中提取出来
                    var payURL = el.XPathSelectElement("/response/payURL");
                    if (payURL == null)
                    {
                        Response.Write("状态:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(payURL.ToString(), "(?<=>).*?(?=<)").Value;    //二维码链接

                    //将支付链接在手机浏览器上打开自动唤醒微信app
                    //Response.Write("<script language='javascript'>window.open('" + qrcode + "');</script>");
                }
                else  //RSA签名方法
                {
                    RSAWithHardware rsa          = new RSAWithHardware();
                    string          merPubKeyDir = "D:/1111110166.pfx";              //证书路径
                    string          password     = "******";                       //证书密码
                    RSAWithHardware rsaWithH     = new RSAWithHardware();
                    rsaWithH.Init(merPubKeyDir, password, "D:/dinpayRSAKeyVersion"); //初始化(version路径需跟证书一致,证书会自动生成version)
                    string signData = rsaWithH.Sign(signStr);                        //签名
                    signData = HttpUtility.UrlEncode(signData);                      //将signData进行UrlEncode编码

                    //组装字符串
                    string para = signStr + "&sign_type=" + sign_type + "&sign=" + signData;
                    //将字符串发送到亿宝通网关
                    string _xml = testOrder.HttpHelp.HttpPost("https://api.syycwx.com/gateway/api/h5apipay", para);

                    //将同步返回的xml中的参数提取出来
                    var el = XElement.Load(new StringReader(_xml));
                    //将XML中的参数逐个提取出来
                    var qrcode1 = el.XPathSelectElement("/response/qrcode");
                    if (qrcode1 == null)
                    {
                        Response.Write("错误:" + _xml + "<br/>");
                        Response.End();
                    }
                    //去掉首尾的标签并转换成string
                    string qrcode = Regex.Match(qrcode1.ToString(), "(?<=>).*?(?=<)").Value;   //二维码链接

                    //将支付链接生成二维码
                    My.Utility.QRCodeHandler qr = new My.Utility.QRCodeHandler();
                    string path         = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/qrcode/"; //文件目录
                    string qrString     = qrcode;                                                                 //二维码字符串
                    string logoFilePath = path + "my.jpg";                                                        //商家Logo路径
                    string filePath     = path + "myCode.jpg";                                                    //二维码文件名
                    qr.CreateQRCode(qrString, "Byte", 6, 6, "H", filePath, true, logoFilePath);                   //生成二维码
                }
            }
            finally{
            }
        }