public virtual void UpdateOrderEbay(OrderEbay orderEbay) { if (orderEbay == null) { throw new ArgumentNullException("orderEbay"); } _orderEbayRepository.Update(orderEbay); }
public virtual void InsertOrderEbay(OrderEbay orderEbay) { if (orderEbay == null) { throw new ArgumentNullException("orderEbay"); } _orderEbayRepository.Insert(orderEbay); }
public async Task <ActionResult> OrderEbay(int id) { var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var ebaySettings = _settingService.LoadSetting <ConfigurationModel>(storeScope); var order = _orderService.GetOrderById(id); if (order == null || order.Deleted) { return(RedirectToAction("ListOrder")); } var listItem = order.OrderItems; var listProduct = new List <Product>(); foreach (var item in listItem) { var product = _orderEbayService.CheckProductEbay(item.Product); if (product) { listProduct.Add(item.Product); } } if (listProduct != null) { // initiate var clientapi = new HttpClient(); clientapi.BaseAddress = new Uri("https://api.sandbox.ebay.com/"); clientapi.DefaultRequestHeaders.Clear(); clientapi.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); clientapi.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ebaySettings.Token); var input = new InitiateInput(); input.contactEmail = order.ShippingAddress.Email == null ? order.Customer.Email : order.ShippingAddress.Email; input.contactFirstName = order.ShippingAddress.FirstName; input.contactLastName = order.ShippingAddress.LastName; var shippingAddress = new ShippingAddress(); shippingAddress.recipient = order.ShippingAddress.FirstName + " " + order.ShippingAddress.LastName; shippingAddress.phoneNumber = "617 555 1212"; shippingAddress.addressLine1 = "No. 37, Jalan Gr 1/4, Cassia Garden Residence"; shippingAddress.city = "Cyberjaya"; shippingAddress.stateOrProvince = "Selangor"; shippingAddress.postalCode = "62000"; shippingAddress.country = "MY"; var creditCard = new CreditCard(); creditCard.accountHolderName = "Frank Smith"; creditCard.cardNumber = "5100000001598174"; creditCard.cvvNumber = "012"; creditCard.expireMonth = 10; creditCard.expireYear = 2019; creditCard.brand = "MASTERCARD"; var billingAddress = new BillingAddress(); billingAddress.firstName = "Frank"; billingAddress.lastName = "Smith"; billingAddress.addressLine1 = "3737 Any St"; billingAddress.city = "San Jose"; billingAddress.stateOrProvince = "CA"; billingAddress.postalCode = "95134"; billingAddress.country = "US"; creditCard.billingAddress = billingAddress; var lineItemInputs = new List <LineItemInput>(); foreach (var item in listProduct) { var lineItem = new LineItemInput(); lineItem.itemId = _orderEbayService.GetProductSource(item); lineItem.quantity = order.OrderItems.Where(c => c.ProductId == item.Id).FirstOrDefault().Quantity; lineItemInputs.Add(lineItem); } input.creditCard = creditCard; input.shippingAddress = shippingAddress; input.lineItemInputs = lineItemInputs; var json = (object)input; HttpResponseMessage Res = await clientapi.PostAsJsonAsync("buy/order/v1/guest_checkout_session/initiate", json); if (Res.IsSuccessStatusCode) { var EmpResponse = Res.Content.ReadAsStringAsync().Result; var result = JsonConvert.DeserializeObject <InitiateOutput>(EmpResponse); //place order var clientapiplaceorder = new HttpClient(); clientapiplaceorder.BaseAddress = new Uri("https://api.sandbox.ebay.com/"); clientapiplaceorder.DefaultRequestHeaders.Clear(); clientapiplaceorder.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); clientapiplaceorder.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ebaySettings.Token); HttpResponseMessage Respon = await clientapiplaceorder.PostAsync("buy/order/v1/guest_checkout_session/" + result.checkoutSessionId + "/place_order", null); if (Respon.IsSuccessStatusCode) { var EmpResponsse = Res.Content.ReadAsStringAsync().Result; var resulst = JsonConvert.DeserializeObject <PlaceOrderOutPut>(EmpResponse); //getPurchaseOrder var clientapiGet = new HttpClient(); clientapiGet.BaseAddress = new Uri("https://api.sandbox.ebay.com/"); clientapiGet.DefaultRequestHeaders.Clear(); clientapiGet.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); clientapiGet.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ebaySettings.Token); HttpResponseMessage Respon1 = await clientapiGet.GetAsync("buy/order/v1/guest_purchase_order/" + resulst.purchaseOrderId); if (Respon.IsSuccessStatusCode) { var EmpResponses = Res.Content.ReadAsStringAsync().Result; var result1 = JsonConvert.DeserializeObject <PurchaseOrderOutPut>(EmpResponse); var ebayOder = new OrderEbay(); ebayOder.OrderId = result1.purchaseOrderId; ebayOder.OrderStatus = result1.purchaseOrderStatus; ebayOder.PaymentStatus = result1.purchaseOrderPaymentStatus; //ebayOder.PricingSummary = result1.pricingSummary.total.value; ebayOder.RefundedAmount = result1.refundedAmount.value; ebayOder.CreationDate = result1.purchaseOrderCreationDate; ebayOder.Adjustment = result1.pricingSummary.adjustment.amount.value; ebayOder.DeliveryCost = result1.pricingSummary.deliveryCost.value; ebayOder.DeliveryDiscount = result1.pricingSummary.deliveryDiscount.value; ebayOder.Fee = result1.pricingSummary.fee.value; ebayOder.PriceDiscount = result1.pricingSummary.priceDiscount.value; ebayOder.PriceSubtotal = result1.pricingSummary.priceSubtotal.value; ebayOder.Tax = result1.pricingSummary.tax.value; ebayOder.Total = result1.pricingSummary.total.value; _orderEbayService.InsertOrderEbay(ebayOder); foreach (var item in result1.lineItems) { var orderdetai = new OrderEbayDetail(); orderdetai.OrderId = ebayOder.Id; orderdetai.ItemId = item.itemId; orderdetai.LineItemId = item.lineItemId; orderdetai.LineItemPaymentStatus = item.lineItemPaymentStatus; orderdetai.LineItemStatus = item.lineItemStatus; orderdetai.MaxEstimatedDeliveryDate = item.shippingDetail.maxEstimatedDeliveryDate; orderdetai.MinEstimatedDeliveryDate = item.shippingDetail.minEstimatedDeliveryDate; orderdetai.ShippingCarrierCode = item.shippingDetail.shippingCarrierCode; orderdetai.ShippingServiceCode = item.shippingDetail.shippingServiceCode; orderdetai.NetPrice = item.netPrice.value; orderdetai.Quantity = item.quantity; orderdetai.FeedbackPercentage = item.seller.feedbackPercentage; orderdetai.FeedbackScore = int.Parse(item.seller.feedbackScore); orderdetai.SellerAccountType = item.seller.sellerAccountType; orderdetai.Username = item.seller.username; orderdetai.Title = item.title; _orderEbayService.InsertOrderEbayDetail(orderdetai); } return(Json(new { success = true, message = "Tạo order thành công" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, message = "Xảy ra lỗi, vui lòng thử lại" }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { success = false, message = "Xảy ra lỗi, vui lòng thử lại" }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { success = false, message = "Xảy ra lỗi, vui lòng thử lại" }, JsonRequestBehavior.AllowGet)); } } else { return(Json(new { success = false, message = "Không có sản phẩm nào của ebay trong đơn hàng này" }, JsonRequestBehavior.AllowGet)); } }