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); }
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); }
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); }
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); } } }
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); }
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; } } } } }
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); }
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)); }
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); }
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)); }
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); }
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); }
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); }
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"); }
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); }
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()); } } }
public static bool CommissionToAmount(MemberAmountDetailedInfo amountinfo, int userid, decimal amount) { AmountDao dao = new AmountDao(); return(dao.CommissionToAmount(amountinfo, userid, amount)); }
public static bool CreatAmount(MemberAmountDetailedInfo AmountInfo) { AmountDao dao = new AmountDao(); return(dao.CreatAmount(AmountInfo, null)); }
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()); }
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); }
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); }
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()); } } }