private OnlineOrder PreOrderDetail(OnlineOrder order) { var result = new OnlineOrder(); result.OrderHeaderID = order.OrderHeaderID; result.DistributorID = order.DistributorID; result.ReceivedDate = order.ReceivedDate; result.OrderMonth = order.OrderMonth; result.OrderCategory = MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.OrderCategoryType.RSO; result.CountryOfProcessing = "CN"; result.InputMethod = InputMethodType.Internet; result.NTSDate = order.ReceivedDate; result.Shipment = order.Shipment; result.OrderItems = new OrderItems(); var orderItem = new OrderItem_V02 { Quantity = 1, SKU = "1316", Description = "F1", }; result.OrderItems.Add(orderItem); return(result); }
public override void Run() { Trace.WriteLine("Début du traitement des messages"); // Démarre la pompe de messages et le rappel est appelé pour chaque message reçu, l'appel de Close sur le client arrêtant la pompe. Client.OnMessage((receivedMessage) => { try { // Traitement du message Trace.WriteLine("Traitement du message Service Bus : " + receivedMessage.SequenceNumber.ToString()); Trace.WriteLine("Processing", receivedMessage.SequenceNumber.ToString()); // View the message as an OnlineOrder. OnlineOrder order = receivedMessage.GetBody <OnlineOrder>(); Trace.WriteLine(order.Customer + ": " + order.Product, "ProcessingMessage"); receivedMessage.Complete(); } catch { // Gérer ici toutes exceptions spécifiques du traitement des messages } }); CompletedEvent.WaitOne(); }
public HttpResponseMessage ChangeOrderStatus(JObject jsonBody) { using (var dbTransaction = db.Database.BeginTransaction()) { try { SaleStatus sale = jsonBody.ToObject <SaleStatus>(); if (db.OnlineOrders.Count(s => s.OnlineOrderId == sale.OrderId) > 0) { OnlineOrder originalSale = db.OnlineOrders.Find(sale.OrderId); originalSale.OrderStatus = sale.Status; db.Entry(originalSale).State = EntityState.Modified; db.SaveChanges(); // reaching this statement means the db transaction is success dbTransaction.Commit(); return(this.Request.CreateResponse(HttpStatusCode.OK, "RTP : Change sale status")); } else { return(this.Request.CreateResponse(HttpStatusCode.NoContent, "RTP : No sale")); } }catch (Exception ex) { dbTransaction.Rollback(); System.Diagnostics.Trace.WriteLine(ex); return(this.Request.CreateResponse(HttpStatusCode.Conflict, ex)); } } }
public ActionResult Checkout() { //POSTransactionSummaryViewModel summaryModel = posTransactionService.GetPOSTransactionSummary(this.HttpContext); BasketSummaryViewModel summaryModel = basketService.GetBasketSummary(this.HttpContext); // customer variable returns one Customer (whose email == current user's email) // i.e. the basket created is being assigned to the currently logged-in user Customer customer = customers.Collection().FirstOrDefault(c => c.Email == User.Identity.Name); if (customer != null) { OnlineOrder order = new OnlineOrder() { CustomerId = customer.Id, FirstName = customer.FirstName, LastName = customer.LastName, CompanyName = customer.CompanyName, Street = customer.Street, City = customer.City, State = customer.State, ZipCode = customer.ZipCode, Email = customer.Email, Phone = customer.Phone, TotalItemCount = summaryModel.BasketCount, TotalAmount = summaryModel.BasketTotal, OnlineOrderItems = summaryModel.OnlineOrderItems }; return(View(order)); } else { return(RedirectToAction("Error")); } }
/// <summary> /// 临停缴费 /// </summary> /// <param name="orderId"></param> /// <returns></returns> public ActionResult ParkCarPayment(decimal orderId) { try { OnlineOrder order = CheckOrder(orderId); if (order.OrderType != OnlineOrderType.ParkFee) { throw new MyException("支付方法不正确"); } if (string.IsNullOrWhiteSpace(order.MWebUrl)) { UnifiedPayModel model = GetUnifiedPayModel(order, string.Format("临停缴费-{0}-{1}", order.PKName, order.PlateNo)); } ViewBag.MaxWaitTime = DateTime.Now.AddMinutes(WXOtherConfigServices.GetTempParkingWeiXinPayTimeOut(order.CompanyID)).ToString("yyyy-MM-dd HH:mm:ss"); ViewBag.MWeb_Url = order.MWebUrl; return(View(order)); } catch (MyException ex) { return(RedirectToAction("Index", "ErrorPrompt", new { message = ex.Message, returnUrl = "/H5ParkingPayment/Index" })); } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("H5WeiXinPayment_Error", string.Format("Message:{0},StackTrace:{1}", ex.Message, ex.StackTrace), LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = "支付失败,请重新支付", returnUrl = "/H5ParkingPayment/Index" })); } }
public void LoadOnlinOrder(ListView listView, OnlineOrder order, string action = "show") { if (action == "show") { var delivery = order.Delivery == DeliveryTypes.BySelf ? "堂食" : "外送"; var group = new ListViewGroup($"单号:{order.TradeCode};配送方式:{delivery}"); group.Tag = order.TradeCode; listView.Groups.Add(group); foreach (var item in order.Items) { var listItem = new ListViewItem(item.Product); listItem.SubItems.Add(new ListViewItem.ListViewSubItem(listItem, item.Option)); listItem.SubItems.Add(new ListViewItem.ListViewSubItem(listItem, (item.Price / 100).ToString("¥0.00元"))); listItem.SubItems.Add(new ListViewItem.ListViewSubItem(listItem, item.Count.ToString())); listItem.SubItems.Add(new ListViewItem.ListViewSubItem(listItem, (item.Money / 100).ToString("¥0.00元"))); listItem.SubItems.Add(new ListViewItem.ListViewSubItem(listItem, "制作中")); listItem.Group = group; listView.Items.Add(listItem); } listView.Groups.Add(group); } else { var groups = listView.Groups.Where(o => o.Tag.ToString().Equals(order.TradeCode)); groups.SelectMany(o => o.Items.Select(t => t)).Remove(listView); groups.Remove(listView); } }
public OnlineSkiPass(string code) { cardCode = code; DataTable dtOrder = DBHelper.GetDataTable(" select [id] from order_online where type='雪票' and code = '" + code.Trim() + "' "); associateOnlineOrder = new OnlineOrder(int.Parse(dtOrder.Rows[0][0].ToString())); associateOnlineOrderDetail = associateOnlineOrder.OrderDetails[0]; productName = associateOnlineOrderDetail.productName.Trim(); count = associateOnlineOrderDetail.count; associateCard = new Card(code); owner = new MiniUsers(associateOnlineOrder._fields["open_id"].ToString()); if (associateCard._fields["type"].Equals("雪票")) { if (!associateCard._fields["used"].ToString().Equals("0")) { used = true; try { useDate = DateTime.Parse(associateCard._fields["use_date"].ToString()); } catch { } } } }
/// <summary> /// 临停缴费 /// </summary> /// <param name="orderId"></param> /// <returns></returns> public ActionResult ParkCarPayment(decimal orderId, int source = 0) { string returnUrl = source == 0 ? "/ParkingPayment/Index" : "/QRCodeParkPayment/QRCodePaySuccess?orderId=" + orderId; try { OnlineOrder order = CheckOrder(orderId); if (order.OrderType != OnlineOrderType.ParkFee) { throw new MyException("支付方法不正确"); } if (!OnlineOrderServices.UpdateSFMCode(order)) { throw new MyException("处理订单信息异常【SFM】"); } string sAttach = Convert.ToString(Session["SmartSystem_WeiXinTg_personid"]); UnifiedPayModel model = GetUnifiedPayModel(order, string.Format("临停缴费-{0}", order.PlateNo), sAttach); WeiXinPaySignModel payModel = GetWeiXinPaySign(order, model); ViewBag.MaxWaitTime = DateTime.Now.AddMinutes(WXOtherConfigServices.GetTempParkingWeiXinPayTimeOut(order.CompanyID)).ToString("yyyy-MM-dd HH:mm:ss"); ViewBag.PayModel = payModel; ViewBag.ReturnUrl = returnUrl; ViewBag.Source = source; Session["SmartSystem_WeiXinTg_personid"] = null; return(View(order)); } catch (MyException ex) { return(RedirectToAction("Index", "ErrorPrompt", new { message = ex.Message, returnUrl = returnUrl })); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPayment_Error", string.Format("支付失败 orderId:{0};openId:{1}", orderId, WeiXinOpenId), ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = "支付失败,请重新支付", returnUrl = returnUrl })); } }
/// <summary> /// APP充值 /// </summary> /// <param name="orderId"></param> /// <returns></returns> public ActionResult BalancePayment(decimal orderId) { try { OnlineOrder order = CheckOrder(orderId); if (order.OrderType != OnlineOrderType.APPRecharge) { throw new MyException("支付方法不正确"); } UnifiedPayModel model = GetUnifiedPayModel(order, string.Format("{0}-APP充值", order.PlateNo)); WeiXinPaySignModel payModel = GetWeiXinPaySign(order, model); ViewBag.PayModel = payModel; return(View(order)); } catch (MyException ex) { TxtLogServices.WriteTxtLogEx("WeiXinPayment_Error", "支付失败 orderId:{0};openId:{1}", orderId, WeiXinOpenId, ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = ex.Message, returnUrl = "/PurseData/Index" })); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPayment_Error", string.Format("APP充值支付失败 orderId:{0};openId:{1}", orderId, WeiXinOpenId), ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = "支付失败,请重新支付", returnUrl = "/PurseData/Index" })); } }
/// <summary> /// 订单自动退款处理 /// </summary> /// <param name="orderId"></param> /// <param name="certpath"></param> /// <returns></returns> public static bool AutoRefund(decimal orderId, string certpath) { TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "方法名:{0},操作类型:{1},订单编号:{2},备注:{3}", "AutoRefund", "订单退款处理", orderId, "开始订单退款处理"); bool refundResult = false; lock (order_lock) { TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "进入lock,orderId:{0}", orderId); try { IOnlineOrder factory = OnlineOrderFactory.GetFactory(); OnlineOrder order = factory.QueryByOrderId(orderId); if (order.Status == OnlineOrderStatus.SyncPayResultFail && order.SyncResultTimes >= 3) { refundResult = Refund(order, certpath); } } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "方法名:{0},操作类型:{1},订单编号:{2},Message:{3},StackTrace:{4}", "AutoRefund", "订单退款处理失败", orderId, ex.Message, ex.StackTrace); } TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "执行完成lock,orderId:{0}", orderId); } return(refundResult); }
/// <summary> /// 手动退款(退款失败是调用) /// </summary> /// <param name="orderId"></param> /// <param name="certpath"></param> /// <returns></returns> public static bool ManualRefund(decimal orderId, string certpath) { TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "方法名:{0},操作类型:{1},订单编号:{2},备注:{3}", "ManualRefund", "订单退款处理", orderId, "开始订单退款处理"); bool refundResult = false; lock (order_lock) { try { IOnlineOrder factory = OnlineOrderFactory.GetFactory(); OnlineOrder order = factory.QueryByOrderId(orderId); if (order.Status == OnlineOrderStatus.RefundFail) { refundResult = Refund(order, certpath); } if (refundResult) { OperateLogServices.AddOperateLog(OperateType.Other, string.Format("手动执行退款操作,退款订单号:{0}", orderId)); } } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("OnlineOrderServices", "手动执行退款操作失败", ex, LogFrom.WeiXin); } } return(refundResult); }
//TODO: too compicated and floated to cache mailing list //Use mail group instead // public void MailInvalidPOS(OnlineOrder order, string[] emails) // { // #region check // if (order == null) // { // throw new ArgumentNullException(nameof(order)); // } // if (emails == null) // { // throw new ArgumentException("message", nameof(emails)); // } // #endregion // _composer.Reset(); // _composer.AppendText("p", $"POS {order.PosCode} is not registered on the system."); // _composer.AppendText("p", "Please assign manually."); // var mail = new MailMessage() // { // From = CreateMailAddress(_options.Username), // IsBodyHtml = true, // Body = _composer.ToString(), // Subject = "POS code is not available" // }; // //Always CC // AddOptionsCC(mail); // //Additional CC // AddTo(mail, emails); // _queue.Enqueue(mail); // } public void MailNewAssign(OnlineOrder order, string assignTo, string[] cc) { #region check if (order == null) { throw new ArgumentNullException(nameof(order)); } if (string.IsNullOrEmpty(assignTo)) { throw new ArgumentException("message", nameof(assignTo)); } #endregion _composer.Reset(); _composer.AppendText("p", $"New order from: {order.Name} CMND: {order.NatId}"); _composer.AppendText("p", $"Assigned to: {assignTo}"); var mail = new MailMessage() { From = CreateMailAddress(_options.Username), IsBodyHtml = true, Body = _composer.ToString(), Subject = "New online sale case assignment" }; //Always CC AddOptionsCC(mail); //Additional CC AddCC(mail, cc); mail.To.Add(CreateMailAddress(assignTo)); _queue.Enqueue(mail); }
public static bool UpdateSFMCode(OnlineOrder order) { if (order.OrderSource == PayOrderSource.SFM) { SFMResult result = SFMInterfaceProcess.CarOrderPay(order.PayDetailID); if (result == null) { throw new MyException("提交支付失败【SFM】"); } if (!result.Success) { throw new MyException("下单失败【SFM】"); } if (string.IsNullOrWhiteSpace(result.Code)) { throw new MyException("交易订单号失败【SFM】"); } IOnlineOrder factory = OnlineOrderFactory.GetFactory(); bool updateResult = factory.UpdateSFMCode(result.Code, order.OrderID); if (!updateResult) { throw new MyException("修改外部订单编号失败【SFM】"); } return(updateResult); } return(true); }
private static bool SyncSellerRecharge(OnlineOrder order, OrderPayWay payWay) { using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { IParkSeller factory = ParkSellerFactory.GetFactory(); ParkSeller model = factory.QueryBySellerId(order.InOutID); if (model == null) { throw new MyException("商家不存在"); } dbOperator.BeginTransaction(); try { ParkOrder pkOrder = ParkOrderServices.MarkSellerChargeOrder(model, order.Amount, model.SellerID, OrderSource.WeiXin, payWay, dbOperator); if (order == null) { throw new MyException("创建充值订单失败"); } bool result = factory.SellerRecharge(model.SellerID, order.Amount, dbOperator); if (!result) { throw new MyException("商家充值失败"); } dbOperator.CommitTransaction(); return(result); } catch (Exception ex) { dbOperator.RollbackTransaction(); ExceptionsServices.AddExceptions(ex, "商家微信充值通知失败,订单编号:" + order.OrderID); return(false); } } }
public void MailNotAssignable(OnlineOrder order, string bdsEmail, string reason, string[] cc) { #region check if (order == null) { throw new ArgumentNullException(nameof(order)); } if (string.IsNullOrEmpty(bdsEmail)) { throw new ArgumentException("message", nameof(bdsEmail)); } #endregion _composer.Reset(); _composer.AppendText("p", $"Cant assign case from: {order.Name} CMND: {order.NatId}"); _composer.AppendText("p", "Please assign manually."); if (!string.IsNullOrEmpty(reason)) { _composer.AppendText("p", reason); } var mail = new MailMessage() { From = CreateMailAddress(_options.Username), IsBodyHtml = true, Body = _composer.ToString(), Subject = "Can not assign online sale case" }; //Always CC AddOptionsCC(mail); //Additional CC AddCC(mail, cc); mail.To.Add(CreateMailAddress(bdsEmail)); _queue.Enqueue(mail); }
public int PlaceOrder(string customerOpenId) { int productId = 147; int orderId = 0; double amount = double.Parse(_fields["guarantee_cash"].ToString().Trim()); OnlineOrderDetail detail = new OnlineOrderDetail(); Product p = new Product(productId); detail.productId = int.Parse(p._fields["id"].ToString()); detail.productName = p._fields["name"].ToString(); detail.price = double.Parse(p._fields["sale_price"].ToString()); detail.count = (int)(amount / detail.price); OnlineOrder newOrder = new OnlineOrder(); newOrder.Type = "押金"; newOrder.shop = _fields["shop"].ToString().Trim(); newOrder.AddADetail(detail); try { orderId = newOrder.Place(customerOpenId); } catch { } DBHelper.UpdateData("expierence_list", new string[,] { { "guarantee_order_id", "int", orderId.ToString() } }, new string[,] { { "id", "int", _fields["id"].ToString() } }, Util.conStr); return orderId; }
public ActionResult Checkout(OnlineOrder order) { var basketItems = basketService.GetBasketItems(this.HttpContext); order.OrderStatus = "Order Created"; order.Email = User.Identity.Name; bool validatedIfPOSAttendant = !User.IsInRole("POSAttendant") || (User.IsInRole("POSAttendant") && User.IsInRole("Client")); if (!validatedIfPOSAttendant) { return(RedirectToAction("Error")); } // process payment here HttpCookie cookie = this.HttpContext.Request.Cookies.Get("OnlineOrderPayment"); string paymentData = cookie.Value; paymentData = paymentData.Replace("_filler_text_", order.Id); IPaymentService paymentDataService = new PaymentService(); paymentDataService.AddPayment(paymentContext, paymentData); // order.OrderStatus = "Payment Processed"; orderService.CreateOnlineOrder(order, basketItems); basketService.ClearBasket(this.HttpContext); // return(RedirectToAction("Thankyou", new { orderId = order.Id })); }
/// <summary> /// 临停缴费 /// </summary> /// <returns></returns> public ActionResult ParkCarPayment(decimal orderId, int source = 0) { if (string.IsNullOrWhiteSpace(AliPayUserId)) { return(RedirectToAction("Index", "ErrorPrompt", new { message = "获取用户信息失败" })); } try { OnlineOrder order = CheckOrder(orderId); if (order.OrderType != OnlineOrderType.ParkFee) { throw new MyException("支付方法不正确"); } string tradeNo = MakeAlipayTradeOrder(order); OnlineOrderServices.UpdatePrepayIdById(tradeNo, order.OrderID); order.PrepayId = tradeNo; ViewBag.MaxWaitTime = DateTime.Now.AddMinutes(WXOtherConfigServices.GetTempParkingWeiXinPayTimeOut(order.CompanyID)).ToString("yyyy-MM-dd HH:mm:ss"); return(View(order)); } catch (MyException ex) { return(RedirectToAction("Index", "ErrorPrompt", new { message = ex.Message, returnUrl = "/QRCodeParkPayment/Index" })); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("AliPay_Error", string.Format("支付失败 orderId:{0};AliUserId:{1}", orderId, AliPayUserId), ex, LogFrom.AliPay); return(RedirectToAction("Index", "ErrorPrompt", new { message = "支付失败,请重新支付", returnUrl = "/QRCodeParkPayment/Index" })); } }
public ActionResult ComputeParkingFee(string licensePlate, string parkingId) { licensePlate = licensePlate.ToPlateNo(); if (!string.IsNullOrWhiteSpace(licensePlate) && licensePlate.Length > 2) { string firstPlate = HttpUtility.UrlEncode(licensePlate.Substring(0, 2), Encoding.GetEncoding("UTF-8")); Response.Cookies.Add(new HttpCookie("SmartSystem_WeiXinUser_DefaultPlate", firstPlate)); } try { OnlineOrder model = new OnlineOrder(); model.OrderTime = DateTime.Now; TempParkingFeeResult result = RechargeService.WXTempParkingFee(licensePlate, parkingId, LoginAccountID, model.OrderTime); if (result.Result == APPResult.NoNeedPay || result.Result == APPResult.RepeatPay) { int type = result.Result == APPResult.NoNeedPay ? 0 : 1; return(RedirectToAction("NotNeedPayment", "ParkingPayment", new { licensePlate = licensePlate, type = type, surplusMinutes = result.OutTime, entranceTime = result.EntranceDate })); } RechargeService.CheckCalculatingTempCost(result.Result); if (result.OrderSource == PayOrderSource.Platform) { bool testResult = CarService.WXTestClientProxyConnectionByPKID(result.ParkingID); if (!testResult) { throw new MyException("车场网络异常,暂无法缴停车费!"); } int interfaceOrderState = InterfaceOrderServices.OrderWhetherEffective(result.Pkorder.OrderNo); if (interfaceOrderState != 1) { string msg = interfaceOrderState == 2 ? "重复支付" : "订单已失效"; return(PageAlert("Index", "H5ParkingPayment", new { RemindUserContent = msg })); } } model.ParkCardNo = result.CardNo; model.PKID = result.ParkingID; model.PKName = result.ParkName; model.InOutID = result.Pkorder.TagID; model.PlateNo = result.PlateNumber; model.EntranceTime = result.EntranceDate; model.ExitTime = model.OrderTime.AddMinutes(result.OutTime); model.Amount = result.Pkorder.Amount; model.PayDetailID = result.Pkorder.OrderNo; model.DiscountAmount = result.Pkorder.DiscountAmount; model.OrderSource = result.OrderSource; model.ExternalPKID = result.ExternalPKID; ViewBag.Result = result.Result; ViewBag.PayAmount = result.Pkorder.PayAmount; return(View(model)); } catch (MyException ex) { return(PageAlert("Index", "H5ParkingPayment", new { RemindUserContent = ex.Message })); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("H5ParkingPaymentError", "计算缴费金额失败", ex, LogFrom.WeiXin); return(PageAlert("Index", "H5ParkingPayment", new { RemindUserContent = "计算缴费金额失败" })); } }
public static bool SyncPaymentResult(decimal orderId) { IOnlineOrder factory = OnlineOrderFactory.GetFactory(); OnlineOrder order = factory.QueryByOrderId(orderId); if (order.PaymentChannel != PaymentChannel.WeiXinPay && order.PaymentChannel == PaymentChannel.AliPay) { throw new MyException("目前只能同步微信或支付宝的支付结果"); } if (order.Status != OnlineOrderStatus.WaitPay && order.Status != OnlineOrderStatus.Paying) { throw new MyException("只有待支付或支付中的订单才能同步"); } switch (order.PaymentChannel) { case PaymentChannel.WeiXinPay: { UnifiedOrderQueryMessage result = PaymentServices.UnifiedOrderQuery(order.CompanyID, order.SerialNumber, order.OrderID.ToString()); if (result.Success) { DateTime payTime = GetConversionWeiXinPayTime(result.Tiem_End); return(PaySuccess(orderId, result.TransactionId, payTime)); } if (result.Return_Code.ToUpper() != "SUCCESS") { throw new MyException(string.Format("同步失败:{0}", result.Return_Msg)); } if (result.Result_Code.ToUpper() != "SUCCESS") { throw new MyException(string.Format("同步失败:【{0}】{1}", result.Err_Code, result.Err_Code_Des)); } if (result.Trade_State.ToUpper() != "SUCCESS") { throw new MyException(string.Format("同步失败:{0}", GetWeiXinPayOrderErrorStateDes(result.Trade_State))); } break; } case PaymentChannel.AliPay: { DateTime payTime = DateTime.Now; bool result = AliPayApiServices.QueryPayResult(order.CompanyID, order.OrderID.ToString(), order.PrepayId, out payTime); if (result) { return(PaySuccess(orderId, order.PrepayId, payTime)); } else { throw new MyException("该订单未支付"); } } default: throw new MyException("支付通道不正确"); } return(false); }
/// <summary> /// 商家充值 /// </summary> /// <param name="orderId"></param> /// <returns></returns> public ActionResult SellerRechargePayment(decimal orderId) { try { OnlineOrder order = CheckOrder(orderId); if (order.OrderType != OnlineOrderType.SellerRecharge) { throw new MyException("支付方法不正确"); } if (string.IsNullOrWhiteSpace(order.MWebUrl)) { UnifiedPayModel model = GetUnifiedPayModel(order, string.Format("商家充值-{0}", order.PKName)); } ViewBag.MWeb_Url = order.MWebUrl; return(View(order)); } catch (MyException ex) { TxtLogServices.WriteTxtLogEx("H5WeiXinPayment_Error", "支付失败 orderId:{0};", orderId, ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = ex.Message, returnUrl = "/H5Seller/Index" })); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("H5WeiXinPayment_Error", string.Format("商家充值支付失败 orderId:{0};", orderId), ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = "支付失败,请重新支付", returnUrl = "/H5Seller/Index" })); } }
public HttpResponseMessage AddOrder(JObject jsonBody) { JObject products = (JObject)jsonBody["ProductsRetailOrder"]; // this variable must be present in the javascript jsonBody.Remove("ProductsRetailOrder"); OnlineOrder retailOrder = jsonBody.ToObject <OnlineOrder>(); // the job card object //retailOrder.CustomerId = User.Identity.GetUserId(); db.OnlineOrders.Add(retailOrder); db.SaveChanges(); int retailOrderId = retailOrder.OnlineOrderId; // the foregin key to be used for the -> proudcts JEnumerable <JToken> tokens = (JEnumerable <JToken>)products.Children <JToken>(); foreach (JToken token in tokens) { JToken productJson = token.Children().First(); ProductInOnlineOrder productInstance = productJson.ToObject <ProductInOnlineOrder>(); productInstance.OnlineOrderId = retailOrderId; db.ProductsInOnlineOrders.Add(productInstance); } db.SaveChanges(); return(this.Request.CreateResponse(HttpStatusCode.Created, retailOrderId)); }
public IHttpActionResult PutRetailOrder(int id, OnlineOrder retailOrder) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != retailOrder.OnlineOrderId) { return(BadRequest()); } db.Entry(retailOrder).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!RetailOrderExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
private static bool PrintOrderCode(this OnlineOrder order, string printer) { var index = 1; var count = order.Items.Sum(o => o.Count); foreach (var item in order.Items) { for (int i = 0; i < item.Count; i++) { var memo = new MemoComponent(order.TradeCode, item.Product, item.Option, index, count); PrintDocument document = new PrintDocument(); document.PrinterSettings.PrinterName = printer; document.PrinterSettings.DefaultPageSettings.Margins = new Margins(2, 0, 0, 0); document.PrintPage += (sender, ev) => { foreach (var print in memo.GenernatePrintItems()) { ev.Graphics.DrawString(print.Text, print.Font, Brushes.Black, new PointF(print.Point.X, print.Point.Y)); } }; index++; document.Print(); } } return(true); }
public int PlaceOnlineOrder(string openId) { try { int.Parse(_fields["online_order_id"].ToString()); return(0); } catch { } string detailJson = _fields["order_detail_json"].ToString().Trim(); OnlineOrder newOrder = new OnlineOrder(); WeixinUser user = new WeixinUser(openId); string cellNumber = user.CellNumber.Trim(); if (cellNumber.Trim().Equals("")) { cellNumber = _fields["customer_number"].ToString().Trim(); } string[,] insertParam = { { "type", "varchar", _fields["type"].ToString().Trim() }, { "open_id", "varchar", openId.Trim() }, { "cell_number", "varchar", cellNumber.Trim() }, { "name", "varchar", user.Nick.Trim() }, { "pay_method", "varchar", _fields["pay_method"].ToString().Trim() }, { "pay_state", "int", "0" }, { "order_price", "float", _fields["market_price"].ToString() }, { "shop", "varchar", _fields["shop"].ToString().Trim() }, { "order_real_pay_price", "float", _fields["real_paid_price"].ToString() }, { "memo", "varchar", _fields["memo"].ToString().Trim() }, { "pay_time", "datetime", DateTime.Now.ToString() }, { "ticket_amount", "float", _fields["ticket_amount"].ToString() }, { "score_rate", "float", _fields["score_rate"].ToString() }, { "generate_score", "float", _fields["generate_score"].ToString() }, { "order_temp_id", "float", _fields["id"].ToString() }, { "ticket_code", "varchar", _fields["ticket_code"].ToString().Trim() } }; int i = DBHelper.InsertData("order_online", insertParam); if (i == 1) { i = DBHelper.GetMaxId("order_online"); } try { Dictionary <string, object>[] detailDicArr = Util.GetObjectArrayFromJsonByKey(detailJson, "order_details"); foreach (Dictionary <string, object> detail in detailDicArr) { string[,] detailInsertParam = { { "order_online_id", "int", i.ToString() }, { "product_id", "int", "0" }, { "product_name", "varchar", detail["name"].ToString().Trim() }, { "price", "float", detail["deal_price"].ToString() }, { "count", "int", detail["num"].ToString() }, { "retail_price", "float", detail["market_price"].ToString() } }; DBHelper.InsertData("order_online_detail", detailInsertParam); } } catch { } string[,] updateParam = { { "online_order_id", "int", i.ToString() } }; string[,] keyParam = { { "id", "int", _fields["id"].ToString() } }; DBHelper.UpdateData("order_online_temp", updateParam, keyParam, Util.conStr); return(i); }
public bool Create(OnlineOrder model) { using (DbOperator dbOperator = ConnectionManager.CreateConnection()) { dbOperator.ClearParameters(); StringBuilder strSql = new StringBuilder(); strSql.Append("INSERT INTO OnlineOrder(OrderID,PKID,PKName,InOutID,PlateNo,EntranceTime,ExitTime,Amount,PaymentChannel,PayBank"); strSql.Append(",PayAccount,Payer,PayeeChannel,PayeeBank,PayeeAccount,PayeeUser,PayDetailID,SerialNumber,PrepayId,MonthNum,AccountID"); strSql.Append(",CardId,SyncResultTimes,LastSyncResultTime,ParkCardNo,Balance,RefundOrderId,Remark,OrderType,Status,OrderTime,RealPayTime"); strSql.Append(",BookingStartTime,BookingEndTime,BookingAreaID,BookingBitNo,CompanyID,OrderSource,ExternalPKID,TagID)"); strSql.Append(" values(@OrderID,@PKID,@PKName,@InOutID,@PlateNo,@EntranceTime,@ExitTime,@Amount,@PaymentChannel,@PayBank"); strSql.Append(",@PayAccount,@Payer,@PayeeChannel,@PayeeBank,@PayeeAccount,@PayeeUser,@PayDetailID,@SerialNumber,@PrepayId,@MonthNum,@AccountID"); strSql.Append(",@CardId,@SyncResultTimes,@LastSyncResultTime,@ParkCardNo,@Balance,@RefundOrderId,@Remark,@OrderType,@Status,@OrderTime,@RealPayTime"); strSql.Append(",@BookingStartTime,@BookingEndTime,@BookingAreaID,@BookingBitNo,@CompanyID,@OrderSource,@ExternalPKID,@TagID)"); dbOperator.AddParameter("OrderID", model.OrderID); dbOperator.AddParameter("PKID", model.PKID); dbOperator.AddParameter("PKName", model.PKName); dbOperator.AddParameter("InOutID", model.InOutID); dbOperator.AddParameter("PlateNo", model.PlateNo); dbOperator.AddParameter("EntranceTime", model.EntranceTime); dbOperator.AddParameter("ExitTime", model.ExitTime); dbOperator.AddParameter("Amount", model.Amount); dbOperator.AddParameter("PaymentChannel", (int)model.PaymentChannel); dbOperator.AddParameter("PayBank", model.PayBank); dbOperator.AddParameter("PayAccount", model.PayAccount); dbOperator.AddParameter("Payer", model.Payer); dbOperator.AddParameter("PayeeChannel", (int)model.PayeeChannel); dbOperator.AddParameter("PayeeBank", model.PayeeBank); dbOperator.AddParameter("PayeeAccount", model.PayeeAccount); dbOperator.AddParameter("PayeeUser", model.PayeeUser); dbOperator.AddParameter("PayDetailID", model.PayDetailID); dbOperator.AddParameter("SerialNumber", model.SerialNumber); dbOperator.AddParameter("PrepayId", model.PrepayId); dbOperator.AddParameter("MonthNum", model.MonthNum); dbOperator.AddParameter("AccountID", model.AccountID); dbOperator.AddParameter("CardId", model.CardId); dbOperator.AddParameter("SyncResultTimes", model.SyncResultTimes); dbOperator.AddParameter("LastSyncResultTime", model.LastSyncResultTime); dbOperator.AddParameter("ParkCardNo", model.ParkCardNo); dbOperator.AddParameter("Balance", model.Balance); dbOperator.AddParameter("RefundOrderId", model.RefundOrderId); dbOperator.AddParameter("Remark", model.Remark); dbOperator.AddParameter("OrderType", model.OrderType); dbOperator.AddParameter("Status", model.Status); dbOperator.AddParameter("OrderTime", model.OrderTime); dbOperator.AddParameter("RealPayTime", model.RealPayTime); dbOperator.AddParameter("BookingStartTime", model.BookingStartTime); dbOperator.AddParameter("BookingEndTime", model.BookingEndTime); dbOperator.AddParameter("BookingAreaID", model.BookingAreaID); dbOperator.AddParameter("BookingBitNo", model.BookingBitNo); dbOperator.AddParameter("CompanyID", model.CompanyID); dbOperator.AddParameter("OrderSource", model.OrderSource); dbOperator.AddParameter("ExternalPKID", model.ExternalPKID); dbOperator.AddParameter("TagID", model.TagID); return(dbOperator.ExecuteNonQuery(strSql.ToString()) > 0); } }
private void Component_OnlineOrderChanged(object sender, OnlineOrder order) { if ((order.State & TradeStates.Delivered) == TradeStates.Delivered) { this.Controls.Remove(sender as OnlineOrderComponent); this.InitializeHistoryOnlineOrders(); this.InitializeHistoryOnlineOrders(); this.dict.TryRemove(order.TradeId, out order); } }
public ActionResult UpdateOnlineOrder(OnlineOrder updatedOrder, string Id) { // only allow update for OrderStatus OnlineOrder order = orderService.GetOnlineOrder(Id); order.OrderStatus = updatedOrder.OrderStatus; orderService.UpdateOnlineOrder(order); return(RedirectToAction("Index")); }
public static bool Create(OnlineOrder model) { if (model == null) { throw new ArgumentNullException("model"); } IOnlineOrder factory = OnlineOrderFactory.GetFactory(); return(factory.Create(model)); }
public static bool PaySuccess(decimal orderId, string serialNumber, DateTime payTime, string payAccount = "") { bool result = false; lock (order_lock) { try { IOnlineOrder factory = OnlineOrderFactory.GetFactory(); OnlineOrder order = factory.QueryByOrderId(orderId); if (order == null) { throw new MyException("订单编号不存在"); } if (order.Status != OnlineOrderStatus.WaitPay && order.Status != OnlineOrderStatus.Paying) { string message = string.Format("【{0}】,订单编号:{1},状态:{2}", order.PaymentChannel.GetDescription(), order.OrderID, order.Status.GetDescription()); TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "【更改订单状态为已支付失败】订单不是有效状态,备注:{0},支付账号:{1}", message, order.PayAccount); return(false); } if (!string.IsNullOrWhiteSpace(payAccount)) { result = factory.PaySuccess(order.OrderID, serialNumber, payAccount, payTime); } else { result = factory.PaySuccess(order.OrderID, serialNumber, payTime); } if (result) { order.Status = OnlineOrderStatus.PaySuccess; order.SerialNumber = serialNumber; order.RealPayTime = payTime; TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "方法名:{0},操作类型:{1},订单编号:{2},备注:{3}", "PaySuccess", "更改订单状态为已支付", orderId, "更改订单状态为已支付成功"); bool noticeResult = NoticePaymentResult(order); string remark = noticeResult ? "通知支付结果成功" : "通知支付结果失败"; TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "方法名:{0},操作类型:{1},订单编号:{2},备注:{3}", "PaySuccess", "更改订单状态为已支付", orderId, remark); } else { TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "【更改订单状态为已支付失败】【{0}】,订单编号:{1},状态:{2}", order.PaymentChannel.GetDescription(), order.OrderID, order.Status.GetDescription()); } } catch (Exception ex) { TxtLogServices.WriteTxtLogEx("OnlineOrderServices", "【更改订单状态为已支付失败】订单编号:{0},Message:{1},StackTrace:{2}", orderId, ex.Message, ex.StackTrace); } return(result); } }
public ActionResult Submit(OnlineOrder order) { if (ModelState.IsValid) { // Create a message from the order var message = new BrokeredMessage(order); // Submit the order QueueConnector.OrdersQueueClient.Send(message); return RedirectToAction("Submit"); } else { return View(order); } }
public void NotFailWithNoItemsNotificationNoCreditCard() { var paymentProcessor = new FakePaymentProcessor(); var reservationService = new FakeReservationService(); var notificationService = new FakeNotificationService(); var cart = new Cart() { CustomerEmail = "*****@*****.**" }; var paymentDetails = new PaymentDetails() { PaymentMethod = PaymentMethod.CreditCard }; var order = new OnlineOrder(cart, paymentDetails, paymentProcessor, reservationService, notificationService); order.Checkout(); // if I got here, I guess it worked... }
public void SendTotalAmountToCreditCardProcessor() { var paymentProcessor = new FakePaymentProcessor(); var reservationService = new FakeReservationService(); var notificationService = new FakeNotificationService(); var cart = new Cart {TotalAmount = 5.05m}; var paymentDetails = new PaymentDetails() { PaymentMethod = PaymentMethod.CreditCard }; var order = new OnlineOrder(cart, paymentDetails, paymentProcessor, reservationService, notificationService); order.Checkout(); Assert.IsTrue(paymentProcessor.WasCalled); Assert.AreEqual(cart.TotalAmount, paymentProcessor.AmountPassed); }