/// <summary> /// 增加报警信息 /// </summary> /// <param name="openid"></param> /// <param name="content"></param> /// <param name="alertType">报警类型</param> public static void AddAlertLog(string openid, string content, string alertType) { string sql = string.Format(@"INSERT INTO dbo.RedPackAlert( OpenId , AlertContent ,AlertType) VALUES ( '{0}' ,'{1}','{2}')", openid, content.Length > 1000 ? content.Substring(0, 1000) : content, alertType); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); }
public static void CreateQrCodeByMD5(int number) { //压缩包存储路径 var basePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; var qrCodePath = Convert.ToString(ConfigurationManager.AppSettings["QrCodeStorePath"]); var fileName = string.Format("{0}.xls", Guid.NewGuid().ToString()); var serverPath = qrCodePath + fileName; var filePath = basePath + serverPath; // string sql = string.Format(@"INSERT INTO dbo.Hfh_RedPackQrCodePackage // ( Num ,State )VALUES ({0},0) // Select @@Identity ", number); // var packageid = SqlHelper2.ExecuteScalar(CommandType.Text, sql); string now = ""; string guid = ""; string url = ""; string code = ""; string sql = ""; List <string> qrCodeList = new List <string>(); int count = number / 100; //生成二维码 for (int i = 1; i <= count; i++) { sql = "INSERT INTO dbo.RedPackCode ( Code , QrcUrl )VALUES "; for (int s = 1; s <= 100; s++) { now = DateTime.Now.ToString("yyyyMMddHHmmssfff"); guid = Guid.NewGuid().ToString(); code = guid.Substring(0, 6) + Str2MD5(guid + now).Substring(0, 6); //sn = Confusion(code); url = ConfigurationManager.AppSettings["QrCodeUrl"] + "&scode=" + code; sql += " ( '" + code + "' , '" + url + "' ),"; } sql = sql.Substring(0, sql.Length - 1); // sql = string.Format(@"INSERT INTO dbo.RedPackCode // ( Code , QrcUrl ) // VALUES ( '{0}' , '{1}' )", code,url ); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); //qrCodeList.Add(url); } //生成Excel //ExcelExtend.SaveExcel<string>(qrCodeList, qrCodePath, fileName); //sql = "update Hfh_RedPackQrCodePackage set state =1,DownLoadUrl = '" + serverPath + "' where packageid = " + packageid.ToString(); //SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); }
/// <summary> /// 生成二维码 /// </summary> /// <param name="number"></param> /// <returns></returns> public static string CreateQrCode(int number, int goodsid = 0) { //压缩包存储路径 var basePath = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; var qrCodePath = Convert.ToString(ConfigurationManager.AppSettings["QrCodeStorePath"]); var fileName = string.Format("{0}.xls", Guid.NewGuid().ToString()); var serverPath = qrCodePath + fileName; var filePath = basePath + serverPath; string sql = string.Format(@"INSERT INTO dbo.Hfh_RedPackQrCodePackage ( Num ,State )VALUES ({0},0) Select @@Identity ", number); var packageid = SqlHelper2.ExecuteScalar(CommandType.Text, sql); string now = ""; string guid = ""; string safe = "beautiful"; string url = ""; string sn = ""; string code = ""; List <string> qrCodeList = new List <string>(); //生成二维码 for (int i = 1; i <= number; i++) { now = DateTime.Now.ToString("yyyyMMddHHmmssfff"); guid = Guid.NewGuid().ToString(); code = now.Substring(0, 8) + now.Substring(14) + packageid.ToString().PadLeft(10, '0') + Guid.NewGuid().ToString().Substring(0, 8); sn = Confusion(code); url = ConfigurationManager.AppSettings["QrCodeUrl"] + "?sn=" + sn; sql = string.Format(@"INSERT INTO dbo.Hfh_RedPackQrCode ( QrcUrl , Code , State ,PackageId ) VALUES ( '{0}' , '{1}' , 1 , {2} )", url, code, packageid); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); qrCodeList.Add(url); } //生成Excel ExcelExtend.SaveExcel <string>(qrCodeList, qrCodePath, fileName); sql = "update Hfh_RedPackQrCodePackage set state =1,DownLoadUrl = '" + serverPath + "' where packageid = " + packageid.ToString(); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); return("succ"); }
/// <summary> /// 付款操作 /// </summary> /// <param name="openid">微信openid</param> /// <returns></returns> public static RJson PayAction(string openid) { RJson r = new RJson(); //r.message = "test"; //r.result_status = "succ"; //return r; string ids = "0"; //付款ids默认0 int payFlag = 0; //付款未成功 try { //openid = "o_-IA0YU6JgzTvKINab0B30y0L_Y";//我的openid用于测试 //openid = "o11Z-joTwit-1j2QLx_-vAzwsvvQ"; //获取用户扫描但是未提现的金额总和 string sql = string.Format(@"SELECT ISNULL(STUFF((SELECT ','+ CONVERT(VARCHAR(20),Id) FROM dbo.RedPackScanRecord WHERE OpenId = '{0}' AND IsPay = 0 for xml path('')),1,1,''),0) Ids, ISNULL(SUM(Money),0) Total FROM RedPackScanRecord WHERE OpenId = '{0}' AND IsPay = 0", openid); var dt = SqlHelper2.ExecuteDataTable(sql); ids = dt.Rows[0][0].ToString(); double totalTxMoney = Convert.ToDouble(dt.Rows[0][1]); //未提现金额 if (ids == "0") { r.message = "无可提取的额度"; } else if (totalTxMoney < 1) { r.message = "不足一元不能提取成功"; } else { //先置为已提现 sql = string.Format(@"UPDATE dbo.RedPackScanRecord SET IsPay =1 WHERE Id IN ({0})", ids); LogHelper.WriteMsg("先置为已提现-openid:" + openid + ",ids:" + ids); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); string strPayResult = CorpPay((totalTxMoney * 100).ToString(), openid); //实际付款 LogHelper.WriteMsg("付款结果-openid:" + openid + ",ids:" + ids + ",结果:" + strPayResult); PayResultModel model = XmlHelpler.GetWxPayResult(strPayResult); //付款结果转类 int payid = 0; if (model.result_code == "SUCCESS") //支付成功,增加纪录 { payFlag = 1; sql = string.Format(@"INSERT INTO dbo.RedPackPayRecord ( OpenId , PayAmout , WxResult_Code , WxPartner_Trade_No , WxPayment_No , WxPayment_Time , WxReturnXML , ScanRecordId ) VALUES ( '{0}' , -- OpenId - varchar(50) {1} , -- PayAmout - float '{2}' , '{3}' , '{4}' , '{5}' , '{6}' , '{7}' ); UPDATE dbo.RedPackScanRecord SET IsPay =1 ,PayId = (SELECT scope_identity()) WHERE Id IN ({7}) ", openid, totalTxMoney, model.result_code, model.partner_trade_no, model.payment_no, model.payment_time, strPayResult, ids); LogHelper.WriteMsg("支付成功,增加纪录-openid:" + openid + ",ids:" + ids + ",sql:" + sql); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); //payid = Convert.ToInt32(SqlHelper2.ExecuteScalar(CommandType.Text, sql)); //sql = string.Format(@"UPDATE dbo.RedPackScanRecord SET IsPay =1 ,PayId = {0} WHERE Id IN ({1})", // payid, ids); //SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); r.message = "提取成功"; r.result_status = "succ"; } else { //付款失败 置为IsPay =0未付款 sql = string.Format(@"UPDATE dbo.RedPackScanRecord SET IsPay =0 WHERE Id IN ({0})", ids); LogHelper.WriteMsg("支付失败,增加纪录-openid:" + openid + ",ids:" + ids + ",sql:" + sql); SqlHelper2.ExecuteNonQuery(CommandType.Text, sql); //支付失败 增加报警信息 AddAlertLog(openid, "红包" + ids + "支付时:" + strPayResult, "pay"); r.message = "提取失败,请联系管理员"; } } //double totalTxMoney = Convert.ToDouble(SqlHelper2.ExecuteScalar(CommandType.Text, sql)); } catch (Exception ex) { //LogHelper.WriteMsg("PayAction异常-openid:" + openid + ",结果:" + ex.ToString());//支付失败 增加报警信息 AddAlertLog(openid, ex.ToString(), "error"); //支付失败 增加报警信息 r.message = "提取失败,请联系管理员"; } return(r); }