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); }
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)); }
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); }
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); }