示例#1
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public String LoginByPwd(DataRow row)
        {
            String loginPwd = String.Empty, loginCode = String.Empty;

            if (!row.Table.Columns.Contains("LoginPwd") || string.IsNullOrEmpty(row["LoginPwd"].AsString()))
            {
                return(new ApiResult(false, "缺少参数loginPwd").toJson());
            }

            if (!row.Table.Columns.Contains("LoginCode") || string.IsNullOrEmpty(row["LoginCode"].AsString()))
            {
                return(new ApiResult(false, "缺少参数loginCode").toJson());
            }
            loginPwd  = row["LoginPwd"].ToString();
            loginCode = row["LoginCode"].ToString();
            try
            {
                using (var conn = new SqlConnection(PubConstant.BusinessContionString))
                {
                    String Sql = "SELECT * FROM Tb_System_BusinessCorp WHERE LoginCode=@LoginCode AND LoginPassWD=@Pwd AND ISNULL(IsDelete,0)=0 AND isnull(IsClose,'未关闭')='未关闭'";
                    Tb_System_BusinessCorp tb_System_BusinessCorp = conn.QueryFirstOrDefault <Tb_System_BusinessCorp>(Sql, new { LoginCode = loginCode, Pwd = loginPwd });

                    if (tb_System_BusinessCorp != null)
                    {
                        return(new ResponseEntity <Object>((int)ResoponseEnum.Success, tb_System_BusinessCorp).ToJson());
                    }
                    return(new ResponseEntity <Object>((int)ResoponseEnum.Failure, "账号或密码错误").ToJson());
                }
            }
            catch (Exception ex)
            {
                return(new ResponseEntity <Object>((int)ResoponseEnum.Error, "登录错误").ToJson());
            }
        }
        /// <summary>
        /// 订单继续支付
        /// </summary>
        public string GoOnGenerateOrder(DataSet Ds)
        {
            DataRow Row = Ds.Tables[0].Rows[0];

            bool   IsBankOk     = false;
            bool   IsBusinessOk = true;//商家订单是否生成成功
            string OrderId      = Row["OrderId"].ToString();
            string prepay_str   = "";

            //取得上一次商家订单信息
            IDbConnection ConnOrder  = new SqlConnection(ConnectionDb.GetBusinessConnection());
            string        OrderQuery = "SELECT * FROM Tb_Charge_Receipt WHERE OrderId=@OrderId OR Id=@OrderId";

            Model.Model.Buss.Tb_Charge_Receipt TOrder = ConnOrder.Query <Model.Model.Buss.Tb_Charge_Receipt>(OrderQuery, new { OrderId = OrderId }).SingleOrDefault();

            if (TOrder != null)
            {
                IsBusinessOk = true;
            }
            string txnTime  = TOrder.txnTime.ToString();
            string BussId   = TOrder.BussId.ToString();
            bool   IsConfig = GenerateConfig(BussId);

            if (IsConfig == false)
            {
                return(JSONHelper.FromString(false, "未配置证书文件"));
            }

            decimal realAmount = 0.0m;

            string sql = @"SELECT * FROM Tb_Charge_ReceiptDetail WHERE ReceiptCode=@ReceiptCode";

            IEnumerable <Tb_Charge_ReceiptDetail> ReceiptDetails = ConnOrder.Query <Tb_Charge_ReceiptDetail>(sql, new { ReceiptCode = TOrder.Id });

            Dictionary <String, decimal> keyValuePairs = new Dictionary <string, decimal>();

            foreach (Tb_Charge_ReceiptDetail item in ReceiptDetails)
            {
                decimal unitPrice = 0.0m;
                // 计算此时应该多少钱
                sql = @"SELECT * FROM Tb_Resources_Details WHERE ResourcesID=@ResourcesID";
                Tb_Resources_Details resources = ConnOrder.Query <Tb_Resources_Details>(sql, new { ResourcesID = item.ResourcesID }).FirstOrDefault();
                if (resources != null)
                {
                    if (resources.IsGroupBuy == "是" &&
                        resources.GroupBuyEndDate.HasValue &&
                        resources.GroupBuyEndDate.Value > DateTime.Now &&
                        resources.GroupBuyStartDate.HasValue &&
                        resources.GroupBuyStartDate.Value < DateTime.Now
                        )
                    {
                        realAmount += (item.GroupPrice.HasValue ? item.GroupPrice.Value : 0) * item.Quantity;
                        unitPrice   = item.GroupPrice.HasValue ? item.GroupPrice.Value : 0;
                    }
                    else
                    {
                        unitPrice = (item.SalesPrice.Value - item.DiscountPrice.Value) >= 0 ? item.SalesPrice.Value - item.DiscountPrice.Value : 0;
                        //如果销售价格 小于 优惠价 则算成0
                        realAmount += ((item.SalesPrice.Value - item.DiscountPrice.Value) >= 0 ? item.SalesPrice.Value - item.DiscountPrice.Value : 0) * item.Quantity;
                    }

                    keyValuePairs.Add(item.RpdCode, unitPrice);

                    if (item.OffsetMoney.HasValue)
                    {
                        realAmount -= item.OffsetMoney.Value;
                    }

                    if (item.OffsetMoney2.HasValue)
                    {
                        realAmount -= item.OffsetMoney2.Value;
                    }

                    //修改当前商品的团购价
                }
            }

            //加上运费
            var money = realAmount + TOrder.Freight;

            //如果不需要给钱 直接完成该订单
            if (money <= 0)
            {
                String result = ReceBusinessOrder(OrderId, 0);
                return(JsonConvert.SerializeObject(new
                {
                    Result = result.ToLower() == "success" ? "true" : "false",
                    Msg = result,
                }));
            }

            ChangeUnitPrice(keyValuePairs);

            if (IsBusinessOk == true)
            {
                sql = "SELECT * FROM Tb_System_BusinessCorp WHERE BussId=@BussId";
                Tb_System_BusinessCorp bussInfo = ConnOrder.Query <Tb_System_BusinessCorp>(sql, new { BussId = TOrder.BussId }).FirstOrDefault();

                //生成预支付单,并返回订单ID
                string BankResult = GenerateBankOrder(BussId, OrderId, txnTime, money, ref IsBankOk, ref prepay_str, bussInfo.BussName + "订单,共" + ReceiptDetails.Count() + "种商品");
                if (IsBankOk == false)
                {
                    return(JSONHelper.FromString(false, BankResult));
                }
                else
                {
                    //更新订单银行流水号
                    IDbConnection Conn  = new SqlConnection(ConnectionDb.GetBusinessConnection());
                    string        Query = @"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str  WHERE OrderId = @OrderId OR Id=@OrderId ";
                    Conn.Execute(Query, new { prepay_str = prepay_str.ToString(), OrderId = OrderId });
                    //返回请求字符串
                    return(JSONHelper.FromJsonString(true, prepay_str));
                }
            }
            return(JSONHelper.FromString(false, "生成订单失败"));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="Ds"></param>
        /// <returns></returns>
        public string GenerateOrder(DataSet Ds)
        {
            DataRow Row = Ds.Tables[0].Rows[0];

            bool   IsBankOk     = false;
            bool   IsBusinessOk = false;
            string OrderId      = "";
            string prepay_str   = "";

            string txnTime = DateTime.Now.ToString("yyyyMMddHHmmss");
            string BussId  = Row["BussId"].ToString();
            string UserId  = Row["UserId"].ToString();

            bool IsConfig = GenerateConfig(BussId);

            if (IsConfig == false)
            {
                return(JSONHelper.FromString(false, "未配置证书文件"));
            }

            string  Name           = Row["Name"].ToString();
            string  Mobile         = Row["Mobile"].ToString();
            string  DeliverAddress = Row["DeliverAddress"].ToString();
            string  subject        = "";
            decimal Amount         = 0.0m;
            decimal CouponAmount   = 0.0m;

            // 俊发需求5896
            string communityId = null;

            if (Row.Table.Columns.Contains("CommunityId") && !string.IsNullOrEmpty(Row["CommunityId"].ToString()))
            {
                communityId = Row["CommunityId"].ToString();
            }

            //生成商家账单
            string BussinessResult = GenerateBusinessOrder(Ds, communityId, BussId, UserId, txnTime, ref IsBusinessOk, ref Amount, ref CouponAmount, ref OrderId, Name, Mobile, DeliverAddress);

            if (IsBusinessOk == true)
            {
                using (IDbConnection Conn = new SqlConnection(ConnectionDb.GetBusinessConnection()))
                {
                    Tb_System_BusinessCorp bussInfo = Conn.Query <Tb_System_BusinessCorp>(@"SELECT * FROM Tb_System_BusinessCorp WHERE BussId=@BussId",
                                                                                          new { BussId = BussId }).FirstOrDefault();

                    if (bussInfo != null)
                    {
                        subject = bussInfo.BussName + "订单,共" + Ds.Tables["Product"].Rows.Count + "种商品";
                    }
                }

                //生成预支付单,并返回订单ID
                string BankResult = GenerateBankOrder(BussId, OrderId, txnTime, (Amount - CouponAmount), ref IsBankOk, ref prepay_str, subject);
                if (IsBankOk == false)
                {
                    return(JSONHelper.FromString(false, BankResult));
                }
                else
                {
                    using (IDbConnection conn = new SqlConnection(ConnectionDb.GetBusinessConnection()))
                    {
                        string sql;
                        if ((Amount - CouponAmount) == 0)
                        {
                            sql = string.Format(@"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str,Method='支付宝',IsPay='已付款',ReturnCode='TRADE_FINISHED',ReturnMsg='TRADE_FINISHED',PayDate=GetDate(),Amount={0},CouponAmount={1},RealAmount=0 WHERE OrderId = @OrderId", Amount, CouponAmount);
                        }
                        else
                        {
                            sql = @"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str WHERE OrderId = @OrderId";
                        }
                        try
                        {
                            conn.Execute(sql, new { prepay_str = prepay_str.ToString(), OrderId = OrderId });
                            IDbConnection tw2bsConn = new SqlConnection(PubConstant.UnifiedContionString.ToString());


                            var commInfo = tw2bsConn.QueryFirstOrDefault($"SELECT CorpID,CommName FROM Tb_Community WHERE Id ='{communityId}'");
                            if (commInfo.CorpID == 1985)//俊发需求6662
                            {
                                var info = conn.QueryFirstOrDefault($@"SELECT HeadquartersPhone,CommPhone,BusinessPhone 
                                                FROM Tb_NotificationManager WHERE CommunityID = '{communityId}'");
                                if (info != null)
                                {
                                    string msg = $@"【俊发物业】{commInfo.CommName}项目,有新的已支付订单,请尽快去后台跟进处理。";
                                    Common.Sms.Send_v2(1410, "jfwy", "jfwy0424", info.HeadquartersPhone, msg, out string strErrMsg);
                                    Common.Sms.Send_v2(1410, "jfwy", "jfwy0424", info.CommPhone, msg, out string strErrMsg1);
                                    Common.Sms.Send_v2(1410, "jfwy", "jfwy0424", info.BusinessPhone, msg, out string strErrMsg2);
                                }
                            }
                        }
                        catch (Exception)
                        {
                        }
                    }


                    //返回请求字符串
                    return(JSONHelper.FromJsonString(true, prepay_str, false));
                }
            }
            else
            {
                return(JSONHelper.FromString(false, BussinessResult));
            }
        }
示例#4
0
        /// <summary>
        /// 订单继续支付
        /// </summary>
        public string GoOnGenerateOrder(DataSet Ds)
        {
            DataRow Row = Ds.Tables[0].Rows[0];

            bool   IsBankOk     = false;
            bool   IsBusinessOk = true;//商家订单是否生成成功
            string OrderId      = Row["OrderId"].ToString();
            string prepay_str   = "";


            //取得上一次商家订单信息
            IDbConnection ConnOrder  = new SqlConnection(ConnectionDb.GetBusinessConnection());
            string        OrderQuery = "SELECT * FROM Tb_Charge_Receipt WHERE OrderId=@OrderId";

            Model.Model.Buss.Tb_Charge_Receipt TOrder = ConnOrder.Query <Model.Model.Buss.Tb_Charge_Receipt>(OrderQuery, new { OrderId = OrderId }).SingleOrDefault();

            if (TOrder != null)
            {
                IsBusinessOk = true;
            }
            string txnTime = TOrder.txnTime.ToString();
            string BussId  = TOrder.BussId.ToString();

            WxPayConfig wxPayConfig = GenerateConfig(BussId);

            if (null == wxPayConfig)
            {
                return(JSONHelper.FromString(false, "未配置证书文件"));
            }

            decimal realAmount = 0.0m;

            string sql = @"SELECT * FROM Tb_Charge_ReceiptDetail WHERE ReceiptCode=@ReceiptCode";

            IEnumerable <Tb_Charge_ReceiptDetail> ReceiptDetails = ConnOrder.Query <Tb_Charge_ReceiptDetail>(sql, new { ReceiptCode = TOrder.Id });

            foreach (Tb_Charge_ReceiptDetail item in ReceiptDetails)
            {
                // 计算此时应该多少钱
                sql = @"SELECT * FROM Tb_Resources_Details WHERE ResourcesID=@ResourcesID";
                Tb_Resources_Details resources = ConnOrder.Query <Tb_Resources_Details>(sql, new { ResourcesID = item.ResourcesID }).FirstOrDefault();

                if (resources != null)
                {
                    if (resources.IsGroupBuy == "是" && resources.GroupBuyEndDate.HasValue && resources.GroupBuyEndDate.Value > DateTime.Now)
                    {
                        realAmount += (resources.GroupBuyPrice.Value + item.Quantity);
                    }
                    else
                    {
                        realAmount += (resources.ResourcesSalePrice - resources.ResourcesDisCountPrice) * item.Quantity;
                    }

                    if (item.OffsetMoney.HasValue)
                    {
                        realAmount -= item.OffsetMoney.Value;
                    }

                    if (item.OffsetMoney2.HasValue)
                    {
                        realAmount -= item.OffsetMoney2.Value;
                    }
                }
            }

            if (IsBusinessOk == true)
            {
                sql = "SELECT * FROM Tb_System_BusinessCorp WHERE BussId=@BussId";
                Tb_System_BusinessCorp bussInfo = ConnOrder.Query <Tb_System_BusinessCorp>(sql, new { BussId = TOrder.BussId }).FirstOrDefault();

                //生成银行订单,返回银行流水号
                WxPayData Data = new WxPayData();

                string BankResult = GenerateBankOrder(BussId, OrderId, txnTime, (int)(realAmount * 100), ref IsBankOk, ref Data, wxPayConfig);
                if (IsBankOk == false)
                {
                    return(JSONHelper.FromString(false, BankResult));
                }
                else
                {
                    //更新订单银行流水号
                    IDbConnection Conn  = new SqlConnection(ConnectionDb.GetBusinessConnection());
                    string        Query = "UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str WHERE OrderId = @OrderId ";
                    Conn.Execute(Query, new { prepay_str = prepay_str.ToString(), OrderId = OrderId });
                    //返回请求字符串

                    //向手机端返回银行记录
                    WxPayData result = new WxPayData();
                    result.SetValue("appid", Data.GetValue("appid"));
                    result.SetValue("partnerid", Data.GetValue("mch_id"));
                    result.SetValue("prepayid", Data.GetValue("prepay_id"));
                    result.SetValue("noncestr", Data.GetValue("nonce_str"));
                    result.SetValue("package", "Sign=WXPay");
                    result.SetValue("timestamp", (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
                    result.SetValue("sign", result.MakeSign());
                    return(JSONHelper.FromJsonString(true, result.ToJson()));
                }
            }
            return(JSONHelper.FromString(false, "生成订单失败"));
        }
示例#5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Ds"></param>
        /// <returns></returns>
        public string GenerateOrder(DataSet Ds)
        {
            DataRow Row = Ds.Tables[0].Rows[0];

            bool   IsBankOk     = false;
            bool   IsBusinessOk = false;
            string OrderId      = "";


            string txnTime = DateTime.Now.ToString("yyyyMMddHHmmss");
            string UserId  = Row["UserId"].ToString();
            string BussId  = Row["BussId"].ToString();

            WxPayConfig wxPayConfig = GenerateConfig(BussId);

            if (null == wxPayConfig)
            {
                return(JSONHelper.FromString(false, "未配置证书文件"));
            }

            string Name           = Row["Name"].ToString();
            string Mobile         = Row["Mobile"].ToString();
            string DeliverAddress = Row["DeliverAddress"].ToString();
            string subject        = "";

            int Amount       = 0;
            int CouponAmount = 0;

            // 俊发需求5896
            string communityId = null;

            if (Row.Table.Columns.Contains("CommunityId") && !string.IsNullOrEmpty(Row["CommunityId"].ToString()))
            {
                communityId = Row["CommunityId"].ToString();
            }

            //生成商家账单
            string BussinessResult = GenerateBusinessOrder(Ds, communityId, BussId, UserId, txnTime, ref IsBusinessOk, ref Amount, ref CouponAmount, ref OrderId, Name, Mobile, DeliverAddress, wxPayConfig);

            if (IsBusinessOk == true)
            {
                using (IDbConnection Conn = new SqlConnection(ConnectionDb.GetBusinessConnection()))
                {
                    Tb_System_BusinessCorp bussInfo = Conn.Query <Tb_System_BusinessCorp>(@"SELECT * FROM Tb_System_BusinessCorp WHERE BussId=@BussId",
                                                                                          new { BussId = BussId }).FirstOrDefault();

                    if (bussInfo != null)
                    {
                        subject = bussInfo.BussName + "订单,共" + Ds.Tables["Product"].Rows.Count + "种商品";
                    }
                }

                //生成银行订单,返回银行流水号
                WxPayData Data = new WxPayData();

                string BankResult = GenerateBankOrder(BussId, OrderId, txnTime, (Amount - CouponAmount), ref IsBankOk, ref Data, wxPayConfig);
                if (IsBankOk == false)
                {
                    return(JSONHelper.FromString(false, BankResult));
                }
                else
                {
                    using (IDbConnection conn = new SqlConnection(ConnectionDb.GetBusinessConnection()))
                    {
                        string sql;
                        if ((Amount - CouponAmount) == 0)
                        {
                            sql = string.Format(@"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str,Method='微信',IsPay='已付款',ReturnCode='TRADE_FINISHED',ReturnMsg='TRADE_FINISHED',PayDate=GetDate(),Amount={0:###.##},CouponAmount={1:###.##},RealAmount=0 WHERE OrderId = @OrderId", Amount / 100, CouponAmount / 100);
                        }
                        else
                        {
                            sql = @"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str WHERE OrderId = @OrderId";
                        }

                        conn.Execute(sql, new { prepay_str = Data.GetValue("prepay_id").ToString(), OrderId = OrderId });
                    }

                    //向手机端返回银行记录
                    WxPayData result = new WxPayData();
                    result.SetValue("appid", Data.GetValue("appid"));
                    result.SetValue("partnerid", Data.GetValue("mch_id"));
                    result.SetValue("prepayid", Data.GetValue("prepay_id"));
                    result.SetValue("noncestr", Data.GetValue("nonce_str"));
                    result.SetValue("package", "Sign=WXPay");
                    result.SetValue("timestamp", (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000000);
                    result.SetValue("sign", result.MakeSign());
                    // 上面的顺序不允许变动
                    result.SetValue("total_fee", Amount);
                    return(JSONHelper.FromJsonString(true, result.ToJson()));
                }
            }
            else
            {
                return(JSONHelper.FromString(false, BussinessResult));
            }
        }
示例#6
0
        /// <summary>
        /// 订单继续支付
        /// </summary>
        public string GoOnGenerateOrder(DataSet Ds)
        {
            DataRow Row = Ds.Tables[0].Rows[0];

            bool   IsBankOk     = false;
            bool   IsBusinessOk = true;//商家订单是否生成成功
            string OrderId      = Row["OrderId"].ToString();
            string prepay_str   = "";


            //取得上一次商家订单信息
            IDbConnection ConnOrder  = new SqlConnection(ConnectionDb.GetBusinessConnection());
            string        OrderQuery = "SELECT * FROM Tb_Charge_Receipt WHERE OrderId=@OrderId";

            Model.Model.Buss.Tb_Charge_Receipt TOrder = ConnOrder.Query <Model.Model.Buss.Tb_Charge_Receipt>(OrderQuery, new { OrderId = OrderId }).SingleOrDefault();

            if (TOrder != null)
            {
                IsBusinessOk = true;
            }
            string txnTime  = TOrder.txnTime.ToString();
            string BussId   = TOrder.BussId.ToString();
            bool   IsConfig = GenerateConfig(BussId);

            if (IsConfig == false)
            {
                return(JSONHelper.FromString(false, "未配置证书文件"));
            }

            decimal realAmount = 0.0m;

            string sql = @"SELECT * FROM Tb_Charge_ReceiptDetail WHERE ReceiptCode=@ReceiptCode";

            IEnumerable <Tb_Charge_ReceiptDetail> ReceiptDetails = ConnOrder.Query <Tb_Charge_ReceiptDetail>(sql, new { ReceiptCode = TOrder.Id });

            foreach (Tb_Charge_ReceiptDetail item in ReceiptDetails)
            {
                // 计算此时应该多少钱
                sql = @"SELECT * FROM Tb_Resources_Details WHERE ResourcesID=@ResourcesID";
                Tb_Resources_Details resources = ConnOrder.Query <Tb_Resources_Details>(sql, new { ResourcesID = item.ResourcesID }).FirstOrDefault();

                if (resources != null)
                {
                    if (resources.IsGroupBuy == "是" && resources.GroupBuyEndDate.HasValue && resources.GroupBuyEndDate.Value > DateTime.Now)
                    {
                        realAmount += (resources.GroupBuyPrice.Value + item.Quantity);
                    }
                    else
                    {
                        realAmount += (resources.ResourcesSalePrice - resources.ResourcesDisCountPrice) * item.Quantity;
                    }

                    if (item.OffsetMoney.HasValue)
                    {
                        realAmount -= item.OffsetMoney.Value;
                    }

                    if (item.OffsetMoney2.HasValue)
                    {
                        realAmount -= item.OffsetMoney2.Value;
                    }
                }
            }

            if (IsBusinessOk == true)
            {
                sql = "SELECT * FROM Tb_System_BusinessCorp WHERE BussId=@BussId";
                Tb_System_BusinessCorp bussInfo = ConnOrder.Query <Tb_System_BusinessCorp>(sql, new { BussId = TOrder.BussId }).FirstOrDefault();

                //生成预支付单,并返回订单ID
                string BankResult = GenerateBankOrder(BussId, OrderId, txnTime, realAmount, ref IsBankOk, ref prepay_str, bussInfo.BussName + "订单,共" + ReceiptDetails.Count() + "种商品");
                if (IsBankOk == false)
                {
                    return(JSONHelper.FromString(false, BankResult));
                }
                else
                {
                    //更新订单银行流水号
                    IDbConnection Conn  = new SqlConnection(ConnectionDb.GetBusinessConnection());
                    string        Query = "UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str WHERE OrderId = @OrderId ";
                    Conn.Execute(Query, new { prepay_str = prepay_str.ToString(), OrderId = OrderId });
                    //返回请求字符串
                    return(JSONHelper.FromJsonString(true, prepay_str));
                }
            }
            return(JSONHelper.FromString(false, "生成订单失败"));
        }
示例#7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="Ds"></param>
        /// <returns></returns>
        public string GenerateOrder(DataSet Ds)
        {
            DataRow Row = Ds.Tables[0].Rows[0];

            bool   IsBankOk     = false;
            bool   IsBusinessOk = false;
            string OrderId      = "";
            string prepay_str   = "";

            string txnTime = DateTime.Now.ToString("yyyyMMddHHmmss");
            string BussId  = Row["BussId"].ToString();
            string UserId  = Row["UserId"].ToString();

            bool IsConfig = GenerateConfig(BussId);

            if (IsConfig == false)
            {
                return(JSONHelper.FromString(false, "未配置证书文件"));
            }

            string  Name           = Row["Name"].ToString();
            string  Mobile         = Row["Mobile"].ToString();
            string  DeliverAddress = Row["DeliverAddress"].ToString();
            string  subject        = "";
            decimal Amount         = 0.0m;
            decimal CouponAmount   = 0.0m;

            // 俊发需求5896
            string communityId = null;

            if (Row.Table.Columns.Contains("CommunityId") && !string.IsNullOrEmpty(Row["CommunityId"].ToString()))
            {
                communityId = Row["CommunityId"].ToString();
            }

            //生成商家账单
            string BussinessResult = GenerateBusinessOrder(Ds, communityId, BussId, UserId, txnTime, ref IsBusinessOk, ref Amount, ref CouponAmount, ref OrderId, Name, Mobile, DeliverAddress);

            if (IsBusinessOk == true)
            {
                using (IDbConnection Conn = new SqlConnection(ConnectionDb.GetBusinessConnection()))
                {
                    Tb_System_BusinessCorp bussInfo = Conn.Query <Tb_System_BusinessCorp>(@"SELECT * FROM Tb_System_BusinessCorp WHERE BussId=@BussId",
                                                                                          new { BussId = BussId }).FirstOrDefault();

                    if (bussInfo != null)
                    {
                        subject = bussInfo.BussName + "订单,共" + Ds.Tables["Product"].Rows.Count + "种商品";
                    }
                }

                //生成预支付单,并返回订单ID
                string BankResult = GenerateBankOrder(BussId, OrderId, txnTime, (Amount - CouponAmount), ref IsBankOk, ref prepay_str, subject);
                if (IsBankOk == false)
                {
                    return(JSONHelper.FromString(false, BankResult));
                }
                else
                {
                    using (IDbConnection conn = new SqlConnection(ConnectionDb.GetBusinessConnection()))
                    {
                        string sql;
                        if ((Amount - CouponAmount) == 0)
                        {
                            sql = string.Format(@"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str,Method='支付宝',IsPay='已付款',ReturnCode='TRADE_FINISHED',ReturnMsg='TRADE_FINISHED',PayDate=GetDate(),Amount={0},CouponAmount={1},RealAmount=0 WHERE OrderId = @OrderId", Amount, CouponAmount);
                        }
                        else
                        {
                            sql = @"UPDATE Tb_Charge_Receipt SET PrepayStr=@prepay_str WHERE OrderId = @OrderId";
                        }

                        conn.Execute(sql, new { prepay_str = prepay_str.ToString(), OrderId = OrderId });
                    }

                    //返回请求字符串
                    return(JSONHelper.FromJsonString(true, prepay_str));
                }
            }
            else
            {
                return(JSONHelper.FromString(false, BussinessResult));
            }
        }