Exemple #1
0
        public bool PayForOrder(PayingOrder payingOrder)
        {
            string json = JsonConvert.SerializeObject(payingOrder);

            byte[] jsonByte = Encoding.UTF8.GetBytes(json);

            int cByte = ParamFieldLength.PACKAGE_HEAD + jsonByte.Length;

            byte[] sendByte   = new byte[cByte];
            int    byteOffset = 0;

            Array.Copy(BitConverter.GetBytes((int)Command.ID_PAYFORORDER), sendByte, BasicTypeLength.INT32);
            byteOffset = BasicTypeLength.INT32;
            Array.Copy(BitConverter.GetBytes(cByte), 0, sendByte, byteOffset, BasicTypeLength.INT32);
            byteOffset += BasicTypeLength.INT32;
            Array.Copy(jsonByte, 0, sendByte, byteOffset, jsonByte.Length);
            byteOffset += jsonByte.Length;

            bool result = false;

            using (SocketClient socket = new SocketClient(ConstantValuePool.BizSettingConfig.IPAddress, ConstantValuePool.BizSettingConfig.Port))
            {
                Byte[] receiveData = null;
                Int32  operCode    = socket.SendReceive(sendByte, out receiveData);
                if (operCode == (int)RET_VALUE.SUCCEEDED)
                {
                    result = true;
                }
                socket.Close();
            }
            return(result);
        }
Exemple #2
0
        private bool PayForOrder(List <OrderPayoff> orderPayoffList, decimal paymentMoney, decimal needChangePay, string tradePayNo)
        {
            //填充Order
            Order order = new Order();

            order.OrderID          = m_SalesOrder.order.OrderID;
            order.TotalSellPrice   = m_TotalPrice;
            order.ActualSellPrice  = m_ActualPayMoney;
            order.DiscountPrice    = m_Discount;
            order.CutOffPrice      = m_CutOff;
            order.ServiceFee       = 0;
            order.PaymentMoney     = paymentMoney;
            order.NeedChangePay    = needChangePay;
            order.MembershipCard   = string.Empty;
            order.MemberDiscount   = 0;
            order.PayEmployeeID    = ConstantValuePool.CurrentEmployee.EmployeeID;
            order.PayEmployeeNo    = ConstantValuePool.CurrentEmployee.EmployeeNo;
            order.CheckoutDeviceNo = ConstantValuePool.BizSettingConfig.DeviceNo;
            order.TradePayNo       = tradePayNo;
            PayingOrder payingOrder = new PayingOrder();

            payingOrder.order           = order;
            payingOrder.orderPayoffList = orderPayoffList;
            return(PayingOrderService.GetInstance().PayForOrder(payingOrder));
        }
Exemple #3
0
        public bool PayForOrder(PayingOrder payingOrder)
        {
            bool returnValue = false;

            _daoManager.BeginTransaction();
            try
            {
                if (payingOrder != null)
                {
                    //日结
                    string dailyStatementNo = _dailyStatementDao.GetCurrentDailyStatementNo();
                    //更新Order
                    if (_orderDao.UpdatePayingOrder(payingOrder.order))
                    {
                        //更新OrderDetails
                        if (payingOrder.orderDetailsList != null && payingOrder.orderDetailsList.Count > 0)
                        {
                            foreach (OrderDetails item in payingOrder.orderDetailsList)
                            {
                                _orderDetailsDao.UpdateOrderDetailsDiscount(item);
                            }
                        }
                        //插入OrderDiscount
                        if (payingOrder.orderDiscountList != null && payingOrder.orderDiscountList.Count > 0)
                        {
                            foreach (OrderDiscount item in payingOrder.orderDiscountList)
                            {
                                item.DailyStatementNo = dailyStatementNo;
                                _orderDiscountDao.CreateOrderDiscount(item);
                            }
                        }
                        //插入OrderPayoff
                        foreach (OrderPayoff item in payingOrder.orderPayoffList)
                        {
                            item.DailyStatementNo = dailyStatementNo;
                            _orderPayoffDao.CreateOrderPayoff(item);
                        }
                        returnValue = true;
                    }
                }
                _daoManager.CommitTransaction();
            }
            catch (Exception exception)
            {
                LogHelper.GetInstance().Error(string.Format("[PayForOrder]参数:payingOrder_{0}", JsonConvert.SerializeObject(payingOrder)), exception);
                _daoManager.RollBackTransaction();
                returnValue = false;
            }
            return(returnValue);
        }
Exemple #4
0
        public static byte[] PayForOrder(byte[] itemBuffer)
        {
            byte[]      objRet      = null;
            string      strReceive  = Encoding.UTF8.GetString(itemBuffer, ParamFieldLength.PACKAGE_HEAD, itemBuffer.Length - ParamFieldLength.PACKAGE_HEAD).Trim('\0');
            PayingOrder payingOrder = JsonConvert.DeserializeObject <PayingOrder>(strReceive);

            bool result = PayingOrderService.GetInstance().PayForOrder(payingOrder);

            if (result)
            {
                //成功
                objRet = new byte[ParamFieldLength.PACKAGE_HEAD];
                Array.Copy(BitConverter.GetBytes((int)RET_VALUE.SUCCEEDED), 0, objRet, 0, BasicTypeLength.INT32);
                Array.Copy(BitConverter.GetBytes(ParamFieldLength.PACKAGE_HEAD), 0, objRet, BasicTypeLength.INT32, BasicTypeLength.INT32);
            }
            else
            {
                //支付账单失败
                objRet = new byte[ParamFieldLength.PACKAGE_HEAD];
                Array.Copy(BitConverter.GetBytes((int)RET_VALUE.ERROR_DB), 0, objRet, 0, BasicTypeLength.INT32);
                Array.Copy(BitConverter.GetBytes(ParamFieldLength.PACKAGE_HEAD), 0, objRet, BasicTypeLength.INT32, BasicTypeLength.INT32);
            }
            return(objRet);
        }