コード例 #1
0
 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());
     }
 }
コード例 #2
0
        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>");
            }
        }
コード例 #3
0
        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);
        }