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{ } }
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{ } }
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 { } } }
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{ } }
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{ } }