public ActionResult <string> GetDownloadBill(string bill_date, string bill_type) { //调用下载对账单接口,如果内部出现异常则在页面上显示异常原因 try { return(DownloadBill.Run(bill_date, bill_type)); } catch (WxPayException ex) { return(ex.ToString()); } catch (Exception ex) { return(ex.ToString()); } }
protected void submit_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(bill_date.Text)) { Response.Write("<script LANGUAGE='javascript'>alert('请输入对账单日期!');</script>"); return; } //调用下载对账单接口,如果内部出现异常则在页面上显示异常原因 try { string result = DownloadBill.Run(bill_date.Text, bill_type.SelectedValue); Response.Write("<span style='color:#00CD00;font-size:20px'>" + result + "</span>"); } catch (WxPayException ex) { Response.Write("<span style='color:#FF0000;font-size:20px'>" + ex.ToString() + "</span>"); } catch (Exception ex) { Response.Write("<span style='color:#FF0000;font-size:20px'>" + ex.ToString() + "</span>"); } }
private void DownloadWxAccount(DateTime beginDate, DateTime endDate, string type) { do { string date = beginDate.ToString("yyyyMMdd"); //date格式:20180808 //type格式: //【ALL 所有订单信息 //SUCCESS 成功支付的订单 //REFUND 退款订单 //REVOKED 撤销的订单】 string result = DownloadBill.Run(date, type); int currentIndex = 0; //当前索引 string line = ""; //每行内容 int count = 0; //总行数 int maxCount = 0; //所需读取数据数 //读取流 StringReader reader = null; #region 计算读取数 reader = new StringReader(result); while (line != null) { line = reader.ReadLine(); count++; } //所需读取数据数 maxCount = count - 4; //重置 line = ""; //关闭流 reader.Close(); #endregion #region 校验是否需要保存数据 #region 过滤条件 List <DataFilter> filters = new List <DataFilter>(); //大于等于起始日期 filters.Add(new DataFilter { comparison = "gteq", field = "PayTime", type = "date", value = beginDate.ToString("yyyy-MM-dd 00:00:00") }); //小于等于起始日期 filters.Add(new DataFilter { comparison = "lteq", field = "PayTime", type = "date", value = beginDate.ToString("yyyy-MM-dd 23:59:59") }); #endregion //校验是否需要保存微信账单 bool isSave = wxAccountDao.CheckIsSave(filters, maxCount); if (isSave) { //需要保存 //删除历史数据 wxAccountDao.Delete(filters); } else { //不需要保存 //增加天数 beginDate = beginDate.AddDays(1); continue; } #endregion #region 保存数据 reader = new StringReader(result); //不读取超出的数据 while (line != null && currentIndex <= maxCount) { line = reader.ReadLine(); #region 读取数据行 if (currentIndex > 0) { string[] accounts = line.Split(','); //店铺名称 string storeName = accounts[20].Trim().Split(' ')[0]; //支付方式 string payModel = ""; //门店名称分割出支付方式时,因提供的格式不对有可能分割出现报错 try { payModel = accounts[20].Trim().Split(' ')[1]; } catch (Exception) { } //费率 decimal rate = Convert.ToDecimal(accounts[23].Trim().Split('%')[0]); WxAccount entity = new WxAccount { PayTime = Convert.ToDateTime(accounts[0].Trim()), //交易时间 AppId = accounts[1].Trim(), //AppID MchId = accounts[2].Trim(), //商户号 SpecialMchId = accounts[3].Trim(), //特约商户号 DeviceId = accounts[4].Trim(), //设备号 OrderNo = accounts[5].Trim(), //微信订单号 MchOrderNo = accounts[6].Trim(), //商户订单号 UserOpenId = accounts[7].Trim(), //用户OpenId PayType = accounts[8].Trim(), //交易类型 PayState = accounts[9].Trim(), //交易状态 PayBank = accounts[10].Trim(), //付款银行 MoneyType = accounts[11].Trim(), //货币种类 DiscountsTotal = Convert.ToDecimal(accounts[12].Trim()), //应结订单金额 CouponPrice = Convert.ToDecimal(accounts[13].Trim()), //代金券金额 RefundOrderNo = accounts[14].Trim(), //微信退款单号 MchRefundOrderNo = accounts[15].Trim(), //商户退款单号 RefundPrice = Convert.ToDecimal(accounts[16].Trim()), //退款金额 CouponRefundPrice = Convert.ToDecimal(accounts[17].Trim()), //充值券退款金额 RefundType = accounts[18].Trim(), //退款类型 RefundState = accounts[19].Trim(), //退款状态 StoreName = storeName, //店铺名称 PayModel = payModel, //支付方式 DataPackage = accounts[21].Trim(), //商户数据包 ServicePrice = Convert.ToDecimal(accounts[22].Trim()), //手续费 Rate = rate, //费率 Total = Convert.ToDecimal(accounts[24].Trim()), //订单金额 SendRefundPrice = Convert.ToDecimal(accounts[25].Trim()), //申请退款金额 RateRemark = accounts[26].Trim() //费率备注 }; wxAccountDao.Stateless_Insert(entity); } #endregion currentIndex++; } //关闭流 reader.Close(); #endregion //增加天数 beginDate = beginDate.AddDays(1); } while (beginDate <= endDate); }