예제 #1
0
        public bool UpdateAmount(MemberAmountDetailedInfo model)
        {
            string    query            = "Update Hishop_MemberAmountDetailed set State=1,GatewayPayId=@GatewayPayId where State<>1 and Id=" + model.Id;
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);

            this.database.AddInParameter(sqlStringCommand, "State", DbType.Int32, model.State);
            this.database.AddInParameter(sqlStringCommand, "GatewayPayId", DbType.String, model.GatewayPayId);
            return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
        }
예제 #2
0
        public bool UpdateMember(MemberAmountDetailedInfo model)
        {
            string query = "Update aspnet_Members set TotalAmount=TotalAmount+@TotalAmount,AvailableAmount=AvailableAmount+@TradeAmount where UserID=" + model.UserId;

            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);
            this.database.AddInParameter(sqlStringCommand, "UserId", System.Data.DbType.Int32, model.UserId);
            this.database.AddInParameter(sqlStringCommand, "TradeAmount", System.Data.DbType.Decimal, model.TradeAmount);
            this.database.AddInParameter(sqlStringCommand, "TotalAmount", System.Data.DbType.Decimal, (model.TradeAmount > 0m) ? model.TradeAmount : 0m);
            return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
        }
예제 #3
0
        public static bool SetAmountByShopAdjustment(MemberAmountDetailedInfo model)
        {
            AmountDao dao  = new AmountDao();
            bool      flag = dao.CreatAmount(model, null);

            if (flag)
            {
                flag = dao.UpdateMember(model, null);
            }
            return(flag);
        }
예제 #4
0
 public bool UseBalance(MemberAmountDetailedInfo mountInfo)
 {
     if (this.CreatAmount(mountInfo, null))
     {
         string    query            = "Update aspnet_Members set AvailableAmount=AvailableAmount+@TradeAmount where UserID=" + mountInfo.UserId;
         DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);
         this.database.AddInParameter(sqlStringCommand, "UserId", DbType.Int32, mountInfo.UserId);
         this.database.AddInParameter(sqlStringCommand, "TradeAmount", DbType.Decimal, mountInfo.TradeAmount);
         return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
     }
     return(false);
 }
        private void DoValidate()
        {
            NameValueCollection values2 = new NameValueCollection();

            values2.Add(this.Page.Request.Form);
            values2.Add(this.Page.Request.QueryString);
            NameValueCollection parameters = values2;

            if (!this.isBackRequest)
            {
                parameters.Add("IsReturn", "true");
            }
            this.Gateway = "hishop.plugins.payment.ws_wappay.wswappayrequest";
            this.Notify  = PaymentNotify.CreateInstance(this.Gateway, parameters);
            Globals.Debuglog("充值支付:0-" + JsonConvert.SerializeObject(this.Notify), "_DebugAlipayPayNotify.txt");
            try
            {
                StringBuilder builder = new StringBuilder();
                foreach (string str in parameters)
                {
                    builder.Append(str + ":" + parameters[str] + ";");
                }
                Globals.Debuglog(builder.ToString(), "_DebugAlipayPayNotify.txt");
            }
            catch (Exception)
            {
            }
            if (this.isBackRequest)
            {
                this.Notify.ReturnUrl = Globals.FullPath("/pay/RePaymentReturn_url.aspx") + "?" + this.Page.Request.Url.Query;
            }
            Globals.Debuglog("充值支付:1-" + JsonConvert.SerializeObject(this.Notify), "_DebugAlipayPayNotify.txt");
            this.PayId = this.Notify.GetOrderId();
            this.Model = MemberAmountProcessor.GetAmountDetailByPayId(this.PayId);
            if (this.Model != null)
            {
                this.Amount             = this.Model.TradeAmount;
                this.Model.GatewayPayId = this.Notify.GetGatewayOrderId();
                PaymentModeInfo paymentMode = MemberAmountProcessor.GetPaymentMode(this.Model.TradeWays);
                if (paymentMode == null)
                {
                    this.ResponseStatus(true, "gatewaynotfound");
                }
                else
                {
                    this.Notify.Finished          += new EventHandler <FinishedEventArgs>(this.Notify_Finished);
                    this.Notify.NotifyVerifyFaild += new EventHandler(this.Notify_NotifyVerifyFaild);
                    this.Notify.Payment           += new EventHandler(this.Notify_Payment);
                    string configXml = HiCryptographer.Decrypt(paymentMode.Settings);
                    this.Notify.VerifyNotify(0x7530, configXml);
                }
            }
        }
예제 #6
0
        public bool UpdateMember(MemberAmountDetailedInfo model, DbTransaction dbTrans = null)
        {
            string    query            = "Update aspnet_Members set TotalAmount=TotalAmount+@TotalAmount,AvailableAmount=AvailableAmount+@TradeAmount where UserID=" + model.UserId;
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);

            this.database.AddInParameter(sqlStringCommand, "UserId", DbType.Int32, model.UserId);
            this.database.AddInParameter(sqlStringCommand, "TradeAmount", DbType.Decimal, model.TradeAmount);
            this.database.AddInParameter(sqlStringCommand, "TotalAmount", DbType.Decimal, (model.TradeAmount > 0M) ? model.TradeAmount : 0M);
            if (dbTrans == null)
            {
                return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
            }
            return(this.database.ExecuteNonQuery(sqlStringCommand, dbTrans) > 0);
        }
예제 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string str = base.Request.QueryString.Get("PayId");

            if (!string.IsNullOrEmpty(str))
            {
                MemberAmountDetailedInfo amountDetailByPayId = MemberAmountProcessor.GetAmountDetailByPayId(str);
                if (amountDetailByPayId != null)
                {
                    PayClient   client;
                    decimal     tradeAmount = amountDetailByPayId.TradeAmount;
                    PackageInfo package     = new PackageInfo
                    {
                        Body       = str,
                        NotifyUrl  = string.Format("http://{0}/pay/wx_PayCharge.aspx", base.Request.Url.Host),
                        OutTradeNo = str,
                        TotalFee   = (int)(tradeAmount * 100M)
                    };
                    if (package.TotalFee < 1M)
                    {
                        package.TotalFee = 1M;
                    }
                    string     openId        = "";
                    MemberInfo currentMember = MemberProcessor.GetCurrentMember();
                    if (currentMember != null)
                    {
                        openId = currentMember.OpenId;
                    }
                    package.OpenId = openId;
                    SiteSettings masterSettings = SettingsManager.GetMasterSettings(true);
                    if (masterSettings.EnableSP)
                    {
                        client = new PayClient(masterSettings.Main_AppId, masterSettings.WeixinAppSecret, masterSettings.Main_Mch_ID, masterSettings.Main_PayKey, true, masterSettings.WeixinAppId, masterSettings.WeixinPartnerID);
                    }
                    else
                    {
                        client = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, false, "", "");
                    }
                    if (client.checkSetParams(out this.CheckValue) && client.checkPackage(package, out this.CheckValue))
                    {
                        PayRequestInfo req = client.BuildPayRequest(package);
                        this.pay_json = this.ConvertPayJson(req);
                        if (!req.package.ToLower().StartsWith("prepay_id=wx"))
                        {
                            this.CheckValue = req.package;
                        }
                    }
                }
            }
        }
예제 #8
0
 public bool CreatAmount(MemberAmountDetailedInfo mountInfo)
 {
     System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand("INSERT INTO Hishop_MemberAmountDetailed(UserId,UserName,PayId,TradeAmount,AvailableAmount,TradeType,TradeWays,TradeTime, Remark,State) VALUES(@UserId,@UserName,@PayId,@TradeAmount,@AvailableAmount, @TradeType, @TradeWays,@TradeTime,@Remark,@State)");
     this.database.AddInParameter(sqlStringCommand, "UserId", System.Data.DbType.Int32, mountInfo.UserId);
     this.database.AddInParameter(sqlStringCommand, "UserName", System.Data.DbType.String, mountInfo.UserName);
     this.database.AddInParameter(sqlStringCommand, "PayId", System.Data.DbType.String, mountInfo.PayId);
     this.database.AddInParameter(sqlStringCommand, "TradeAmount", System.Data.DbType.Decimal, mountInfo.TradeAmount);
     this.database.AddInParameter(sqlStringCommand, "AvailableAmount", System.Data.DbType.Decimal, mountInfo.AvailableAmount);
     this.database.AddInParameter(sqlStringCommand, "TradeType", System.Data.DbType.Int32, mountInfo.TradeType);
     this.database.AddInParameter(sqlStringCommand, "TradeWays", System.Data.DbType.Int32, mountInfo.TradeWays);
     this.database.AddInParameter(sqlStringCommand, "TradeTime", System.Data.DbType.DateTime, mountInfo.TradeTime);
     this.database.AddInParameter(sqlStringCommand, "Remark", System.Data.DbType.String, mountInfo.Remark);
     this.database.AddInParameter(sqlStringCommand, "State", System.Data.DbType.Int32, mountInfo.State);
     return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
 }
예제 #9
0
        public bool MemberAmountAddByRefund(MemberInfo memberInfo, decimal amount, string orderid)
        {
            MemberAmountDetailedInfo memberAmountDetailedInfo = new MemberAmountDetailedInfo();

            memberAmountDetailedInfo.UserId          = memberInfo.UserId;
            memberAmountDetailedInfo.UserName        = memberInfo.UserName;
            memberAmountDetailedInfo.PayId           = Globals.GetGenerateId();
            memberAmountDetailedInfo.TradeAmount     = decimal.Round(amount, 2);
            memberAmountDetailedInfo.TradeType       = TradeType.OrderClose;
            memberAmountDetailedInfo.TradeTime       = DateTime.Now;
            memberAmountDetailedInfo.TradeWays       = TradeWays.Balance;
            memberAmountDetailedInfo.State           = 1;
            memberAmountDetailedInfo.AvailableAmount = memberInfo.AvailableAmount + memberAmountDetailedInfo.TradeAmount;
            memberAmountDetailedInfo.Remark          = "订单号:" + orderid;
            return(new AmountDao().UseBalance(memberAmountDetailedInfo));
        }
예제 #10
0
        public bool UseBalance(MemberAmountDetailedInfo mountInfo)
        {
            bool result;

            if (this.CreatAmount(mountInfo))
            {
                string query = "Update aspnet_Members set AvailableAmount=AvailableAmount+@TradeAmount where UserID=" + mountInfo.UserId;
                System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);
                this.database.AddInParameter(sqlStringCommand, "UserId", System.Data.DbType.Int32, mountInfo.UserId);
                this.database.AddInParameter(sqlStringCommand, "TradeAmount", System.Data.DbType.Decimal, mountInfo.TradeAmount);
                result = (this.database.ExecuteNonQuery(sqlStringCommand) > 0);
            }
            else
            {
                result = false;
            }
            return(result);
        }
예제 #11
0
        public bool MemberAmountAddByRefund(MemberInfo memberInfo, decimal amount, string orderid)
        {
            MemberAmountDetailedInfo info = new MemberAmountDetailedInfo();

            info = new MemberAmountDetailedInfo {
                UserId          = memberInfo.UserId,
                UserName        = memberInfo.UserName,
                PayId           = Globals.GetGenerateId(),
                TradeAmount     = decimal.Round(amount, 2),
                TradeType       = TradeType.OrderClose,
                TradeTime       = DateTime.Now,
                TradeWays       = TradeWays.Balance,
                State           = 1,
                AvailableAmount = memberInfo.AvailableAmount + info.TradeAmount,
                Remark          = "订单号:" + orderid
            };
            return(new AmountDao().UseBalance(info));
        }
예제 #12
0
        public static bool SetAmountRequestStatus(int[] serialids, int checkValue, string Remark = "", string Amount = "", string Operator = "")
        {
            bool flag = new AmountDao().SetAmountRequestStatus(serialids, checkValue, Remark, Amount, Operator);

            if (checkValue == -1 && flag)
            {
                for (int i = 0; i < serialids.Length; i++)
                {
                    int serialid = serialids[i];
                    MemberAmountRequestInfo amountRequestDetail = MemberAmountProcessor.GetAmountRequestDetail(serialid);
                    MemberInfo member = new MemberDao().GetMember(amountRequestDetail.UserId);
                    MemberAmountDetailedInfo memberAmountDetailedInfo = new MemberAmountDetailedInfo
                    {
                        UserId          = amountRequestDetail.UserId,
                        TradeAmount     = amountRequestDetail.Amount,
                        PayId           = Globals.GetGenerateId(),
                        UserName        = amountRequestDetail.UserName,
                        TradeType       = TradeType.WithdrawalsRefuse,
                        TradeTime       = DateTime.Now,
                        State           = 1,
                        TradeWays       = MemberAmountProcessor.GetWaysByRequestType(amountRequestDetail.RequestType),
                        AvailableAmount = member.AvailableAmount + amountRequestDetail.Amount,
                        Remark          = "余额提现驳回"
                    };
                    flag = (new AmountDao().UpdateMember(memberAmountDetailedInfo) && MemberAmountProcessor.CreatAmount(memberAmountDetailedInfo));
                    MemberAmountRequestInfo amountRequestDetail2 = MemberAmountProcessor.GetAmountRequestDetail(serialid);
                    if (amountRequestDetail2 != null)
                    {
                        string url = Globals.FullPath("/Vshop/MemberAmountRequestDetail.aspx?Id=" + amountRequestDetail2.Id);
                        try
                        {
                            Messenger.SendWeiXinMsg_MemberAmountDrawCashRefuse(amountRequestDetail2, url);
                        }
                        catch
                        {
                        }
                    }
                }
            }
            return(flag);
        }
예제 #13
0
        public static bool SetAmountRequestStatus(int[] serialids, int checkValue, string Remark = "", string Amount = "", string Operator = "")
        {
            bool flag = new AmountDao().SetAmountRequestStatus(serialids, checkValue, Remark, Amount, Operator);

            if ((checkValue == -1) && flag)
            {
                foreach (int num in serialids)
                {
                    MemberAmountRequestInfo amountRequestDetail = GetAmountRequestDetail(num);
                    MemberInfo member = new MemberDao().GetMember(amountRequestDetail.UserId);
                    MemberAmountDetailedInfo model = new MemberAmountDetailedInfo {
                        UserId          = amountRequestDetail.UserId,
                        TradeAmount     = amountRequestDetail.Amount,
                        PayId           = Globals.GetGenerateId(),
                        UserName        = amountRequestDetail.UserName,
                        TradeType       = TradeType.WithdrawalsRefuse,
                        TradeTime       = DateTime.Now,
                        State           = 1,
                        TradeWays       = GetWaysByRequestType(amountRequestDetail.RequestType),
                        AvailableAmount = member.AvailableAmount + amountRequestDetail.Amount,
                        Remark          = "余额提现驳回"
                    };
                    flag = new AmountDao().UpdateMember(model, null) && CreatAmount(model);
                    MemberAmountRequestInfo balance = GetAmountRequestDetail(num);
                    if (balance != null)
                    {
                        string url = Globals.FullPath("/Vshop/MemberAmountRequestDetail.aspx?Id=" + balance.Id);
                        try
                        {
                            Messenger.SendWeiXinMsg_MemberAmountDrawCashRefuse(balance, url);
                        }
                        catch
                        {
                        }
                    }
                }
            }
            return(flag);
        }
예제 #14
0
        public static bool UserPayOrder(MemberAmountDetailedInfo model)
        {
            AmountDao dao = new AmountDao();

            model.State = 1;
            bool flag = dao.UpdateAmount(model);

            if (flag)
            {
                flag = dao.UpdateMember(model, null);
                SettingsManager.GetMasterSettings(true);
                Globals.Debuglog("触发自动成为分销商的条件", "_DebuglogMemberAutoToDistributor.txt");
                MemberInfo member = MemberProcessor.GetMember(model.UserId, true);
                if (VshopBrowser.IsPassAutoToDistributor(member, true))
                {
                    DistributorsBrower.MemberAutoToDistributor(member);
                }
                return(flag);
            }
            Globals.Debuglog("充值操作重复提交了!!!" + model.UserId, "_DebuglogMemberAutoToDistributor.txt");
            return(flag);
        }
예제 #15
0
        public string SetUserAmount(int userID, string amount, string remark)
        {
            MemberInfo member = MemberHelper.GetMember(userID);
            MemberAmountDetailedInfo model = new MemberAmountDetailedInfo {
                UserId          = userID,
                UserName        = member.UserName,
                PayId           = Globals.GetGenerateId(),
                TradeAmount     = decimal.Parse(amount),
                TradeType       = TradeType.ShopAdjustment,
                TradeTime       = DateTime.Now,
                State           = 1,
                TradeWays       = TradeWays.Balance,
                AvailableAmount = member.AvailableAmount + decimal.Parse(amount),
                Remark          = remark
            };

            if (MemberAmountProcessor.SetAmountByShopAdjustment(model))
            {
                return("success");
            }
            return("fail");
        }
예제 #16
0
        public static bool CreatAmountApplyRequest(MemberAmountRequestInfo applyInfo)
        {
            AmountDao dao  = new AmountDao();
            bool      flag = dao.CreatAmountApplyRequest(applyInfo);

            if (flag)
            {
                MemberInfo member = new MemberDao().GetMember(applyInfo.UserId);
                MemberAmountDetailedInfo model = new MemberAmountDetailedInfo {
                    UserId          = applyInfo.UserId,
                    TradeAmount     = -applyInfo.Amount,
                    PayId           = Globals.GetGenerateId(),
                    UserName        = applyInfo.UserName,
                    TradeType       = TradeType.Withdrawals,
                    TradeTime       = DateTime.Now,
                    State           = 1,
                    TradeWays       = GetWaysByRequestType(applyInfo.RequestType),
                    AvailableAmount = member.AvailableAmount - applyInfo.Amount,
                    Remark          = "余额提现。收款账号:" + applyInfo.AccountCode
                };
                flag = dao.UpdateMember(model, null) && CreatAmount(model);
            }
            return(flag);
        }
예제 #17
0
        private void ProcessCommissionToAmount(HttpContext context)
        {
            context.Response.ContentType = "application/json";
            DistributorsInfo userIdDistributors = DistributorsBrower.GetUserIdDistributors(Globals.GetCurrentMemberUserId(false));
            MemberInfo       currentMember      = MemberProcessor.GetCurrentMember();
            StringBuilder    builder            = new StringBuilder();

            builder.Append("{");
            if (userIdDistributors == null)
            {
                builder.Append("\"Status\":\"Eror\",\"ErrorMsg\":\"您不是分销商!\"");
                builder.Append("}");
                context.Response.ContentType = "application/json";
                context.Response.Write(builder.ToString());
            }
            else
            {
                decimal num    = DistributorsBrower.CommionsRequestSumMoney(userIdDistributors.UserId);
                decimal amount = decimal.Parse(context.Request["Amount"]);
                if ((amount < 0.01M) || (amount > (userIdDistributors.ReferralBlance - num)))
                {
                    string str = "您输入正确的金额";
                    if ((amount - 0.01M) < (userIdDistributors.ReferralBlance - num))
                    {
                        str = "最多可提现金额为:" + ((amount - 0.01M)).ToString("F2") + "元";
                    }
                    builder.Append("\"Status\":\"Eror\",\"ErrorMsg\":\"" + str + "!\"");
                    builder.Append("}");
                    context.Response.ContentType = "application/json";
                    context.Response.Write(builder.ToString());
                }
                else
                {
                    MemberAmountDetailedInfo amountinfo = new MemberAmountDetailedInfo
                    {
                        UserId          = currentMember.UserId,
                        UserName        = currentMember.UserName,
                        PayId           = Globals.GetGenerateId(),
                        TradeAmount     = amount,
                        TradeType       = TradeType.CommissionTransfer,
                        TradeTime       = DateTime.Now,
                        State           = 1,
                        AvailableAmount = currentMember.AvailableAmount + amount,
                        TradeWays       = TradeWays.ShopCommission,
                        Remark          = "佣金转入余额"
                    };
                    if (MemberAmountProcessor.CommissionToAmount(amountinfo, userIdDistributors.UserId, amount))
                    {
                        builder.Append("\"Status\":\"OK\"");
                    }
                    else
                    {
                        builder.Append("\"Status\":\"Error\"");
                        builder.AppendFormat(",\"ErrorMsg\":\"佣金转余额失败!\"", new object[0]);
                    }
                    builder.Append("}");
                    context.Response.ContentType = "application/json";
                    context.Response.Write(builder.ToString());
                }
            }
        }
예제 #18
0
        public static bool CommissionToAmount(MemberAmountDetailedInfo amountinfo, int userid, decimal amount)
        {
            AmountDao dao = new AmountDao();

            return(dao.CommissionToAmount(amountinfo, userid, amount));
        }
예제 #19
0
        public static bool CreatAmount(MemberAmountDetailedInfo AmountInfo)
        {
            AmountDao dao = new AmountDao();

            return(dao.CreatAmount(AmountInfo, null));
        }
예제 #20
0
        private void ProcessSubmmitAmount(System.Web.HttpContext context)
        {
            context.Response.ContentType = "application/json";
            MemberInfo currentMember = MemberProcessor.GetCurrentMember();

            System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
            stringBuilder.Append("{");
            if (currentMember == null)
            {
                stringBuilder.Append("\"Status\":\"Eror\",\"ErrorMsg\":\"请先登录!\"");
                stringBuilder.Append("}");
                context.Response.ContentType = "application/json";
                context.Response.Write(stringBuilder.ToString());
                return;
            }
            int     num        = int.Parse(context.Request["paymentType"]);
            decimal num2       = decimal.Parse(context.Request["Amount"]);
            string  generateId = Globals.GetGenerateId();

            if (num2 > 1000000m)
            {
                stringBuilder.Append("\"Status\":\"Eror\",\"ErrorMsg\":\"最大充值金额不大于100万!\"");
                stringBuilder.Append("}");
                context.Response.ContentType = "application/json";
                context.Response.Write(stringBuilder.ToString());
                return;
            }
            MemberAmountDetailedInfo memberAmountDetailedInfo = new MemberAmountDetailedInfo();

            memberAmountDetailedInfo.UserId          = currentMember.UserId;
            memberAmountDetailedInfo.UserName        = currentMember.UserName;
            memberAmountDetailedInfo.PayId           = generateId;
            memberAmountDetailedInfo.TradeAmount     = num2;
            memberAmountDetailedInfo.TradeType       = TradeType.Recharge;
            memberAmountDetailedInfo.TradeTime       = System.DateTime.Now;
            memberAmountDetailedInfo.State           = 0;
            memberAmountDetailedInfo.AvailableAmount = currentMember.AvailableAmount + num2;
            memberAmountDetailedInfo.Remark          = "余额充值";
            if (num == 88)
            {
                memberAmountDetailedInfo.TradeWays = TradeWays.WeChatWallet;
            }
            else
            {
                PaymentModeInfo paymentMode = ShoppingProcessor.GetPaymentMode(num);
                if (paymentMode != null)
                {
                    if (paymentMode.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                    {
                        memberAmountDetailedInfo.TradeWays = TradeWays.Alipay;
                    }
                    else if (paymentMode.Gateway == "Hishop.Plugins.Payment.ShengPayMobile.ShengPayMobileRequest")
                    {
                        memberAmountDetailedInfo.TradeWays = TradeWays.ShengFutong;
                    }
                }
            }
            if (MemberAmountProcessor.CreatAmount(memberAmountDetailedInfo))
            {
                stringBuilder.Append("\"Status\":\"OK\",\"PayIdStatus\":\"" + memberAmountDetailedInfo.PayId + "\",");
                stringBuilder.AppendFormat("\"PayId\":\"{0}\"", memberAmountDetailedInfo.PayId);
            }
            else
            {
                stringBuilder.Append("\"Status\":\"Error\"");
                stringBuilder.AppendFormat(",\"ErrorMsg\":\"提交充值失败!\"", new object[0]);
            }
            stringBuilder.Append("}");
            context.Response.ContentType = "application/json";
            context.Response.Write(stringBuilder.ToString());
        }
예제 #21
0
        public static int OrderBalanceUpdate(OrderInfo orderInfo, int userid, decimal remainingMondy)
        {
            MemberInfo member = new MemberDao().GetMember(userid);
            int        result;

            if (member == null)
            {
                result = 0;
            }
            else
            {
                decimal     num         = member.AvailableAmount;
                decimal     num2        = 0m;
                ICollection values      = orderInfo.LineItems.Values;
                OrderStatus orderStatus = orderInfo.OrderStatus;
                foreach (LineItemInfo lineItemInfo in values)
                {
                    if (lineItemInfo.Type == 0)
                    {
                        decimal num3 = lineItemInfo.ItemAdjustedPrice * lineItemInfo.Quantity - lineItemInfo.DiscountAverage;
                        decimal num4;
                        if (num >= num3)
                        {
                            num -= num3;
                            num4 = num3;
                        }
                        else
                        {
                            num4 = num;
                            num  = 0m;
                        }
                        if (num4 <= 0m)
                        {
                            break;
                        }
                        num2 += num4;
                        lineItemInfo.BalancePayMoney = num4;
                    }
                }
                if (num > 0m)
                {
                    decimal num5 = orderInfo.AdjustedFreight - orderInfo.CouponFreightMoneyTotal;
                    if (remainingMondy > 0m)
                    {
                        num5 -= remainingMondy;
                        if (num5 < 0m)
                        {
                            num5 = 0m;
                        }
                    }
                    decimal num6;
                    if (num > num5)
                    {
                        num6 = num5;
                    }
                    else
                    {
                        num6 = num;
                    }
                    orderInfo.BalancePayFreightMoneyTotal = num6;
                    num2 += num6;
                }
                if (orderInfo.GetCashPayMoney() <= 0m)
                {
                    orderStatus = OrderStatus.BuyerAlreadyPaid;
                }
                foreach (LineItemInfo lineItemInfo in values)
                {
                    new LineItemDao().UpdateBalancePayMoney(lineItemInfo.ID, lineItemInfo.BalancePayMoney, orderStatus, null);
                }
                int num7 = 1;
                if (orderStatus == OrderStatus.BuyerAlreadyPaid)
                {
                    orderInfo.OrderStatus = OrderStatus.BuyerAlreadyPaid;
                    orderInfo.PayDate     = new DateTime?(DateTime.Now);
                    num7 = 2;
                    if (orderInfo.GetBalancePayMoneyTotal() > 0m)
                    {
                        orderInfo.PaymentTypeId = 66;
                        orderInfo.PaymentType   = "余额支付";
                        orderInfo.Gateway       = "hishop.plugins.payment.balancepayrequest";
                    }
                }
                new OrderDao().UpdateOrder(orderInfo, null);
                if (num2 > 0m)
                {
                    MemberAmountDetailedInfo memberAmountDetailedInfo = new MemberAmountDetailedInfo();
                    memberAmountDetailedInfo.UserId          = member.UserId;
                    memberAmountDetailedInfo.UserName        = member.UserName;
                    memberAmountDetailedInfo.PayId           = Globals.GetGenerateId();
                    memberAmountDetailedInfo.TradeAmount     = -num2;
                    memberAmountDetailedInfo.TradeType       = TradeType.Payment;
                    memberAmountDetailedInfo.TradeTime       = DateTime.Now;
                    memberAmountDetailedInfo.TradeWays       = TradeWays.Balance;
                    memberAmountDetailedInfo.State           = 1;
                    memberAmountDetailedInfo.AvailableAmount = member.AvailableAmount + memberAmountDetailedInfo.TradeAmount;
                    memberAmountDetailedInfo.Remark          = "订单号:" + orderInfo.OrderId;
                    new AmountDao().UseBalance(memberAmountDetailedInfo);
                }
                result = num7;
            }
            return(result);
        }
예제 #22
0
        public static int OrderBalanceUpdate(OrderInfo orderInfo, int userid, decimal remainingMondy)
        {
            MemberInfo member = new MemberDao().GetMember(userid);

            if (member == null)
            {
                return(0);
            }
            decimal     availableAmount = member.AvailableAmount;
            decimal     num2            = 0M;
            ICollection values          = orderInfo.LineItems.Values;
            decimal     num3            = 0M;
            OrderStatus orderStatus     = orderInfo.OrderStatus;

            foreach (LineItemInfo info2 in values)
            {
                if (info2.Type == 0)
                {
                    num3 = (info2.ItemAdjustedPrice * info2.Quantity) - info2.DiscountAverage;
                    decimal num4 = 0M;
                    if (availableAmount >= num3)
                    {
                        availableAmount -= num3;
                        num4             = num3;
                    }
                    else
                    {
                        num4            = availableAmount;
                        availableAmount = 0M;
                    }
                    if (num4 <= 0M)
                    {
                        break;
                    }
                    num2 += num4;
                    info2.BalancePayMoney = num4;
                }
            }
            if (availableAmount > 0M)
            {
                decimal num5 = 0M;
                decimal num6 = orderInfo.AdjustedFreight - orderInfo.CouponFreightMoneyTotal;
                if (remainingMondy > 0M)
                {
                    num6 -= remainingMondy;
                    if (num6 < 0M)
                    {
                        num6 = 0M;
                    }
                }
                if (availableAmount > num6)
                {
                    num5 = num6;
                }
                else
                {
                    num5 = availableAmount;
                }
                orderInfo.BalancePayFreightMoneyTotal = num5;
                num2 += num5;
            }
            if (orderInfo.GetCashPayMoney() <= 0M)
            {
                orderStatus = OrderStatus.BuyerAlreadyPaid;
            }
            foreach (LineItemInfo info3 in values)
            {
                new LineItemDao().UpdateBalancePayMoney(info3.ID, info3.BalancePayMoney, orderStatus, null);
            }
            int num7 = 1;

            if (orderStatus == OrderStatus.BuyerAlreadyPaid)
            {
                orderInfo.OrderStatus = OrderStatus.BuyerAlreadyPaid;
                orderInfo.PayDate     = new DateTime?(DateTime.Now);
                num7 = 2;
                if (orderInfo.GetBalancePayMoneyTotal() > 0M)
                {
                    orderInfo.PaymentTypeId = 0x42;
                    orderInfo.PaymentType   = "余额支付";
                    orderInfo.Gateway       = "hishop.plugins.payment.balancepayrequest";
                }
            }
            new OrderDao().UpdateOrder(orderInfo, null);
            if (num2 > 0M)
            {
                MemberAmountDetailedInfo info4 = new MemberAmountDetailedInfo();
                info4 = new MemberAmountDetailedInfo {
                    UserId          = member.UserId,
                    UserName        = member.UserName,
                    PayId           = Globals.GetGenerateId(),
                    TradeAmount     = -num2,
                    TradeType       = TradeType.Payment,
                    TradeTime       = DateTime.Now,
                    TradeWays       = TradeWays.Balance,
                    State           = 1,
                    AvailableAmount = member.AvailableAmount + info4.TradeAmount,
                    Remark          = "订单号:" + orderInfo.OrderId
                };
                new AmountDao().UseBalance(info4);
            }
            return(num7);
        }
예제 #23
0
        private void ProcessSubmmitAmount(HttpContext context)
        {
            context.Response.ContentType = "application/json";
            MemberInfo    currentMember = MemberProcessor.GetCurrentMember();
            StringBuilder builder       = new StringBuilder();

            builder.Append("{");
            if (currentMember == null)
            {
                builder.Append("\"Status\":\"Eror\",\"ErrorMsg\":\"请先登录!\"");
                builder.Append("}");
                context.Response.ContentType = "application/json";
                context.Response.Write(builder.ToString());
            }
            else
            {
                int     modeId     = int.Parse(context.Request["paymentType"]);
                decimal num2       = decimal.Parse(context.Request["Amount"]);
                string  generateId = Globals.GetGenerateId();
                if (num2 > 1000000M)
                {
                    builder.Append("\"Status\":\"Eror\",\"ErrorMsg\":\"最大充值金额不大于100万!\"");
                    builder.Append("}");
                    context.Response.ContentType = "application/json";
                    context.Response.Write(builder.ToString());
                }
                else
                {
                    MemberAmountDetailedInfo amountInfo = new MemberAmountDetailedInfo {
                        UserId          = currentMember.UserId,
                        UserName        = currentMember.UserName,
                        PayId           = generateId,
                        TradeAmount     = num2,
                        TradeType       = TradeType.Recharge,
                        TradeTime       = DateTime.Now,
                        State           = 0,
                        AvailableAmount = currentMember.AvailableAmount + num2,
                        Remark          = "余额充值"
                    };
                    if (modeId == 0x58)
                    {
                        amountInfo.TradeWays = TradeWays.WeChatWallet;
                    }
                    else
                    {
                        PaymentModeInfo paymentMode = ShoppingProcessor.GetPaymentMode(modeId);
                        if (paymentMode != null)
                        {
                            if (paymentMode.Gateway == "hishop.plugins.payment.ws_wappay.wswappayrequest")
                            {
                                amountInfo.TradeWays = TradeWays.Alipay;
                            }
                            else if (paymentMode.Gateway == "Hishop.Plugins.Payment.ShengPayMobile.ShengPayMobileRequest")
                            {
                                amountInfo.TradeWays = TradeWays.ShengFutong;
                            }
                        }
                    }
                    if (MemberAmountProcessor.CreatAmount(amountInfo))
                    {
                        builder.Append("\"Status\":\"OK\",\"PayIdStatus\":\"" + amountInfo.PayId + "\",");
                        builder.AppendFormat("\"PayId\":\"{0}\"", amountInfo.PayId);
                    }
                    else
                    {
                        builder.Append("\"Status\":\"Error\"");
                        builder.AppendFormat(",\"ErrorMsg\":\"提交充值失败!\"", new object[0]);
                    }
                    builder.Append("}");
                    context.Response.ContentType = "application/json";
                    context.Response.Write(builder.ToString());
                }
            }
        }