⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 payonline.cs

📁 动易SiteFactory&#8482 网上商店系统1.0源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
                if (Product.CharacterIsExists(info.ProductCharacter, ProductCharacter.Card))
                {
                    flag5 = ProcessCards(payOnlineMessage, doUpdate, info, ref isFirstStockItem, ref stockId);
                    flag4 = true;
                }
                if (Product.CharacterIsExists(info.ProductCharacter, ProductCharacter.Practicality))
                {
                    flag = true;
                }
                if (Product.CharacterIsExists(info.ProductCharacter, ProductCharacter.Service))
                {
                    flag2 = true;
                }
                if (Product.CharacterIsExists(info.ProductCharacter, ProductCharacter.Download))
                {
                    flag3 = true;
                }
            }
            if (!isFirstStockItem)
            {
                StockInfo stockInfo = new StockInfo();
                stockInfo.Inputer = PEContext.Current.Admin.AdminName;
                stockInfo.InputTime = DateTime.Now;
                stockInfo.Remark = "交付点卡";
                stockInfo.StockId = StockManage.GetMaxId() + 1;
                stockInfo.StockNum = StockItem.GetShipmentNum();
                stockInfo.StockType = StockType.Shipment;
                StockManage.Add(stockInfo);
            }
            if (doUpdate && !flag)
            {
                if ((flag3 && !flag4) && !flag2)
                {
                    Order.Recieve(this.m_OrderInfo.OrderId);
                    return isok;
                }
                if (!flag5)
                {
                    this.m_OrderInfo.DeliverStatus = DeliverStatus.Consignment;
                    isok = Order.Update(this.m_OrderInfo);
                }
            }
            return isok;
        }

        public static void TestLog(bool isLog, string title, string payState, string signMsg, string md5Msg)
        {
            if (isLog)
            {
                string str = HttpContext.Current.Request.QueryString.ToString();
                string str2 = HttpContext.Current.Request.Form.ToString();
                string path = HttpContext.Current.Request.PhysicalApplicationPath + @"PayOnline\log.txt";
                StringBuilder builder = new StringBuilder();
                builder.Append("payState=");
                builder.Append(payState);
                builder.Append("\r\n");
                builder.Append("signMsg=");
                builder.Append(signMsg);
                builder.Append("\r\n");
                builder.Append("md5Msg =");
                builder.Append(md5Msg);
                builder.Append("\r\n");
                if (signMsg == md5Msg)
                {
                    builder.Append("加密签名串验证通过");
                    builder.Append("\r\n");
                }
                else
                {
                    builder.Append("加密签名串验证失败");
                    builder.Append("\r\n");
                }
                builder.Append("QueryString=");
                builder.Append(str);
                builder.Append("\r\n");
                builder.Append("FormString=");
                builder.Append(str2);
                try
                {
                    StreamWriter w = File.AppendText(path);
                    Log(title, builder.ToString(), w);
                    w.Close();
                }
                catch (UnauthorizedAccessException)
                {
                }
            }
        }

        public PayOnlineState UpdateOrder(string paymentNum, decimal amount, string eBankInfo, int status, string remark, bool updateDeliverStatus, bool updateOrderStatus)
        {
            StringBuilder payOnlineMessage = new StringBuilder(0x40);
            paymentNum = DataSecurity.FilterBadChar(paymentNum);
            eBankInfo = DataSecurity.FilterBadChar(eBankInfo);
            remark = DataSecurity.FilterBadChar(remark);
            PayOnlineState state = this.UpdatePaymentLog(paymentNum, amount, eBankInfo, status, remark);
            if (state != PayOnlineState.Ok)
            {
                return state;
            }
            if (updateDeliverStatus)
            {
                bool doUpdate = !BankrollItem.ExistsPaymentLog(this.m_PaymentLogId);
                if (!doUpdate)
                {
                    return PayOnlineState.AccountPaid;
                }
                bool isok = false;
                IEncourageStrategy<decimal> strategy = new UserMoney();
                if (updateOrderStatus)
                {
                    if (this.m_UserId > 0)
                    {
                        strategy.IncreaseForUsers(this.m_UserId.ToString(), this.m_MoneyReceipt, "", false, "");
                    }
                    BankrollItemInfo bankrollItemInfo = new BankrollItemInfo();
                    bankrollItemInfo.UserName = this.m_UserName;
                    bankrollItemInfo.ClientId = this.m_ClientID;
                    bankrollItemInfo.Money = this.m_MoneyReceipt;
                    bankrollItemInfo.MoneyType = 3;
                    bankrollItemInfo.EBankId = this.m_PlatformId;
                    bankrollItemInfo.OrderId = this.m_OrderInfo.OrderId;
                    bankrollItemInfo.PaymentId = this.m_PaymentLogId;
                    bankrollItemInfo.Remark = "在线支付单号:" + paymentNum;
                    bankrollItemInfo.DateAndTime = new DateTime?(DateTime.Now);
                    bankrollItemInfo.CurrencyType = 1;
                    isok = BankrollItem.Add(bankrollItemInfo);
                }
                if (this.m_OrderInfo.IsNull)
                {
                    if (!isok)
                    {
                        return PayOnlineState.Fail;
                    }
                    return PayOnlineState.Ok;
                }
                if (updateDeliverStatus && ((this.m_OrderInfo.MoneyTotal - this.m_OrderInfo.MoneyReceipt) <= this.m_MoneyReceipt))
                {
                    this.m_OrderInfo.EnableDownload = true;
                    isok = Order.Update(this.m_OrderInfo);
                }
                if ((this.m_OrderInfo.MoneyReceipt < this.m_OrderInfo.MoneyTotal) && updateOrderStatus)
                {
                    bool flag3 = false;
                    if ((this.m_OrderInfo.MoneyTotal - this.m_OrderInfo.MoneyReceipt) <= this.m_MoneyReceipt)
                    {
                        this.m_MoneyPayout = this.m_OrderInfo.MoneyTotal - this.m_OrderInfo.MoneyReceipt;
                        this.m_OrderInfo.MoneyReceipt = this.m_OrderInfo.MoneyTotal;
                        flag3 = true;
                    }
                    else if (SiteConfig.ShopConfig.EnablePartPay)
                    {
                        this.m_MoneyPayout = this.m_MoneyReceipt;
                        this.m_OrderInfo.MoneyReceipt += this.m_MoneyReceipt;
                        flag3 = true;
                    }
                    if (flag3)
                    {
                        if (this.m_OrderInfo.Status <= OrderStatus.WaitForConfirm)
                        {
                            this.m_OrderInfo.Status = OrderStatus.Confirmed;
                        }
                        isok = Order.Update(this.m_OrderInfo);
                        BankrollItemInfo info2 = new BankrollItemInfo();
                        info2.UserName = this.m_UserName;
                        info2.ClientId = this.m_ClientID;
                        info2.Money = (this.m_MoneyPayout > 0M) ? (-1M * this.m_MoneyPayout) : this.m_MoneyPayout;
                        info2.MoneyType = 4;
                        info2.EBankId = 0;
                        info2.OrderId = this.m_OrderInfo.OrderId;
                        info2.PaymentId = 0;
                        info2.Remark = "支付订单费用,订单号:" + this.m_OrderInfo.OrderNum;
                        info2.DateAndTime = new DateTime?(DateTime.Now);
                        info2.CurrencyType = 1;
                        isok = BankrollItem.Add(info2);
                        if (this.m_UserId > 0)
                        {
                            isok = strategy.IncreaseForUsers(this.m_UserId.ToString(), decimal.op_UnaryNegation(this.m_MoneyPayout), "", false, "");
                        }
                        payOnlineMessage.Append("同时已经为您的订单编号为 " + this.m_OrderInfo.OrderNum + " 的订单支付了 " + this.m_MoneyPayout.ToString("N2") + "元。<br />");
                    }
                    else
                    {
                        payOnlineMessage.Append("您的支付金额小于订单金额,不能对订单进行支付,资金已经打入您的帐户中做为预付款。<br />");
                        updateDeliverStatus = false;
                    }
                }
                if (updateDeliverStatus)
                {
                    this.ShowCardInfo(payOnlineMessage, doUpdate, isok);
                }
                payOnlineMessage.Append("<a href='../User/Shop/ShowOrder.aspx?OrderId=" + this.m_OrderInfo.OrderId.ToString() + "'>点此查看订单信息</a>");
                this.m_Message = payOnlineMessage.ToString();
                if (!isok)
                {
                    return PayOnlineState.Fail;
                }
            }
            return PayOnlineState.Ok;
        }

        private PayOnlineState UpdatePaymentLog(string paymentNum, decimal amount, string eBankInfo, int status, string remark)
        {
            PaymentLogInfo infoByPaymentNum = PaymentLog.GetInfoByPaymentNum(paymentNum);
            PayOnlineState ok = PayOnlineState.Ok;
            if (infoByPaymentNum.IsNull)
            {
                return PayOnlineState.PaymentLogNotFound;
            }
            if (infoByPaymentNum.MoneyTrue != amount)
            {
                return PayOnlineState.RemittanceWrong;
            }
            this.m_OrderInfo = Order.GetOrderById(infoByPaymentNum.OrderId);
            this.m_PlatformId = infoByPaymentNum.PlatformId;
            this.m_PaymentLogId = infoByPaymentNum.PaymentLogId;
            this.m_UserName = infoByPaymentNum.UserName;
            this.m_MoneyReceipt = infoByPaymentNum.MoneyPay;
            infoByPaymentNum.PlatformInfo = DataSecurity.HtmlEncode(eBankInfo);
            infoByPaymentNum.Remark = DataSecurity.HtmlEncode(remark);
            infoByPaymentNum.Status = status;
            PaymentLog.Update(infoByPaymentNum);
            UserInfo usersByUserName = Users.GetUsersByUserName(this.m_UserName);
            if (!usersByUserName.IsNull)
            {
                this.m_UserId = usersByUserName.UserId;
                this.m_ClientID = usersByUserName.ClientId;
            }
            return ok;
        }

        public string Message
        {
            get
            {
                return this.m_Message;
            }
            set
            {
                this.m_Message = value;
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -