using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Net; using System.IO; using System.Xml; using System.Xml.Linq; using NetLibrary; using NetLibrary.Express; namespace NetLibrary.OnlineTrade { public class EbayApi { public string Appkey { get; set; } public string DeveKey { get; set; } public string CertKey { get; set; } public int Level { get; set; } public string ShopNo { get; set; } public EbayApi() { Appkey = "mitang648-0b4d-45cc-8393-22985badfcb"; DeveKey = "f56448c8-0099-4e84-bbbb-2e30b3e2c8a3"; CertKey = "adfccd96-4a84-402e-959f-c19d26fce4c5"; Level = 955;//771; } #region 订单分析 Ebay_Order ConvertOrder(XElement item) { XElement cElement = null; Ebay_Order Model = new Ebay_Order(); Model.OrderID = CustomIO.GetXmlElement(item, "OrderID"); Model.OrderStatus = CustomIO.GetXmlElement(item, "OrderStatus"); if (item.Element("AdjustmentAmount") != null) { Model.AdjustmentAmount.currencyID = CustomIO.GetXmlAttribute(item.Element("AdjustmentAmount"), "currencyID"); Model.AdjustmentAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "AdjustmentAmount")); } if (item.Element("AmountPaid") != null) { Model.AmountPaid.currencyID = CustomIO.GetXmlAttribute(item.Element("AmountPaid"), "currencyID"); Model.AmountPaid.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "AmountPaid")); } if (item.Element("AmountSaved") != null) { Model.AmountSaved.currencyID = CustomIO.GetXmlAttribute(item.Element("AmountSaved"), "currencyID"); Model.AmountSaved.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "AmountSaved")); } cElement = item.Element("CheckoutStatus"); if (cElement != null) { Model.CheckoutStatus.eBayPaymentStatus = CustomIO.GetXmlElement(cElement, "eBayPaymentStatus"); Model.CheckoutStatus.SetLastModifiedTime(CustomIO.GetXmlElement(cElement, "LastModifiedTime")); Model.CheckoutStatus.PaymentMethod = CustomIO.GetXmlElement(cElement, "PaymentMethod"); Model.CheckoutStatus.Status = CustomIO.GetXmlElement(cElement, "Status"); Model.CheckoutStatus.IntegratedMerchantCreditCardEnabled = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "IntegratedMerchantCreditCardEnabled")); } cElement = item.Element("ShippingDetails"); if (cElement != null) { Model.ShippingDetails.SellingManagerSalesRecordNumber = Convert.ToInt64(CustomIO.GetXmlElement(cElement, "SellingManagerSalesRecordNumber")); Model.ShippingDetails.GetItFast = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "GetItFast")); cElement = cElement.Element("SalesTax"); if (cElement != null) { if(CustomIO.GetXmlElement(cElement, "SalesTaxPercent")!="") Model.ShippingDetails.SalesTax.SalesTaxPercent = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "SalesTaxPercent")); Model.ShippingDetails.SalesTax.SalesTaxState = CustomIO.GetXmlElement(cElement, "SalesTaxState"); Model.ShippingDetails.SalesTax.ShippingIncludedInTax = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "ShippingIncludedInTax")); if (cElement.Element("SalesTaxAmount") != null) { Model.ShippingDetails.SalesTax.SalesTaxAmount.currencyID = CustomIO.GetXmlAttribute(cElement.Element("SalesTaxAmount"), "currencyID"); Model.ShippingDetails.SalesTax.SalesTaxAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "SalesTaxAmount")); } } cElement = item.Element("ShippingDetails").Element("ShippingServiceOptions"); if (cElement != null) { Model.ShippingDetails.ShippingServiceOptions.ShippingService = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShippingService")); if (cElement.Element("ShippingServiceCost") != null) { Model.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.currencyID = CustomIO.GetXmlAttribute(cElement.Element("ShippingServiceCost"), "currencyID"); Model.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "ShippingServiceCost")); } Model.ShippingDetails.ShippingServiceOptions.ShippingServicePriority = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "ShippingServicePriority")); Model.ShippingDetails.ShippingServiceOptions.ExpeditedService = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "ExpeditedService")); Model.ShippingDetails.ShippingServiceOptions.ShippingTimeMin = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "ShippingTimeMin")); Model.ShippingDetails.ShippingServiceOptions.ShippingTimeMax = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "ShippingTimeMax")); } } Model.CreatingUserRole = Convert.ToString(CustomIO.GetXmlElement(item, "CreatingUserRole")); Model.SetCreatedTime(CustomIO.GetXmlElement(item, "CreatedTime")); Model.PaymentMethods = Convert.ToString(CustomIO.GetXmlElement(item, "PaymentMethods")); Model.SellerEmail = Convert.ToString(CustomIO.GetXmlElement(item, "SellerEmail")); cElement = item.Element("ShippingAddress"); if (cElement != null) { Model.ShippingAddress.Name = Convert.ToString(CustomIO.GetXmlElement(cElement, "Name")); Model.ShippingAddress.Street1 = Convert.ToString(CustomIO.GetXmlElement(cElement, "Street1")); Model.ShippingAddress.Street2 = Convert.ToString(CustomIO.GetXmlElement(cElement, "Street2")); Model.ShippingAddress.CityName = Convert.ToString(CustomIO.GetXmlElement(cElement, "CityName")); Model.ShippingAddress.StateOrProvince = Convert.ToString(CustomIO.GetXmlElement(cElement, "StateOrProvince")); Model.ShippingAddress.Country = Convert.ToString(CustomIO.GetXmlElement(cElement, "Country")); Model.ShippingAddress.CountryName = Convert.ToString(CustomIO.GetXmlElement(cElement, "CountryName")); Model.ShippingAddress.Phone = Convert.ToString(CustomIO.GetXmlElement(cElement, "Phone")); Model.ShippingAddress.PostalCode = Convert.ToString(CustomIO.GetXmlElement(cElement, "PostalCode")); Model.ShippingAddress.AddressID = Convert.ToString(CustomIO.GetXmlElement(cElement, "AddressID")); Model.ShippingAddress.AddressOwner = Convert.ToString(CustomIO.GetXmlElement(cElement, "AddressOwner")); Model.ShippingAddress.ExternalAddressID = Convert.ToString(CustomIO.GetXmlElement(cElement, "ExternalAddressID")); } cElement = item.Element("ShippingServiceSelected"); if (cElement != null) { Model.ShippingServiceSelected.ShippingService = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShippingService")); if (cElement.Element("ShippingServiceCost") != null) { Model.ShippingServiceSelected.ShippingServiceCost.currencyID = CustomIO.GetXmlAttribute(cElement.Element("ShippingServiceCost"), "currencyID"); Model.ShippingServiceSelected.ShippingServiceCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "ShippingServiceCost")); } } if (item.Element("Subtotal") != null) { Model.Subtotal.currencyID = CustomIO.GetXmlAttribute(item.Element("Subtotal"), "currencyID"); Model.Subtotal.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "Subtotal")); } if (item.Element("Total") != null) { Model.Total.currencyID = CustomIO.GetXmlAttribute(item.Element("Total"), "currencyID"); Model.Total.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "Total")); } Model.CreatingUserRole = Convert.ToString(CustomIO.GetXmlElement(item, "CreatingUserRole")); Model.CreatingUserRole = Convert.ToString(CustomIO.GetXmlElement(item, "CreatingUserRole")); XElement Element2 = item.Element("TransactionArray"); if (Element2 != null) { foreach (XElement item2 in Element2.Elements("Transaction")) { Ebay_Transaction model = new Ebay_Transaction(); cElement = item2.Element("Buyer"); model.Buyer.Email = Convert.ToString(CustomIO.GetXmlElement(cElement, "Email")); model.Buyer.UserFirstName = Convert.ToString(CustomIO.GetXmlElement(cElement, "UserFirstName")); model.Buyer.UserLastName = Convert.ToString(CustomIO.GetXmlElement(cElement, "UserLastName")); cElement = item2.Element("ShippingDetails"); if (cElement != null) { model.ShippingDetails.SellingManagerSalesRecordNumber = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "SellingManagerSalesRecordNumber")); cElement = cElement.Element("ShipmentTrackingDetails"); if (cElement != null) { model.ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShippingCarrierUsed")); model.ShippingDetails.ShipmentTrackingDetails.ShipmentTrackingNumber = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShipmentTrackingNumber")); } } model.SetCreatedDate(CustomIO.GetXmlElement(item2, "CreatedDate")); cElement = item2.Element("Item"); if (cElement != null) { model.Item.ItemID = Convert.ToString(CustomIO.GetXmlElement(cElement, "ItemID")); model.Item.Site = Convert.ToString(CustomIO.GetXmlElement(cElement, "Site")); model.Item.Title = Convert.ToString(CustomIO.GetXmlElement(cElement, "Title")); model.Item.SKU = Convert.ToString(CustomIO.GetXmlElement(cElement, "SKU")); model.Item.ConditionID = Convert.ToString(CustomIO.GetXmlElement(cElement, "ConditionID")); model.Item.ConditionDisplayName = Convert.ToString(CustomIO.GetXmlElement(cElement, "ConditionDisplayName")); } model.QuantityPurchased = Convert.ToInt32(CustomIO.GetXmlElement(item2, "QuantityPurchased")); cElement = item2.Element("Status"); if (cElement != null) { model.Status.PaymentHoldStatus = Convert.ToString(CustomIO.GetXmlElement(cElement, "PaymentHoldStatus")); } model.TransactionID = Convert.ToString(CustomIO.GetXmlElement(item2, "TransactionID")); if (item2.Element("TransactionPrice") != null) { model.TransactionPrice.currencyID = CustomIO.GetXmlAttribute(item2.Element("TransactionPrice"), "currencyID"); model.TransactionPrice.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item2, "TransactionPrice")); } model.TransactionSiteID = Convert.ToString(CustomIO.GetXmlElement(item2, "TransactionSiteID")); model.Platform = Convert.ToString(CustomIO.GetXmlElement(item2, "Platform")); cElement = item2.Element("Variation"); if (cElement != null) { model.Variation.SKU = Convert.ToString(CustomIO.GetXmlElement(cElement, "SKU")); XElement Element3 = cElement.Element("VariationSpecifics"); if (Element3 != null) { foreach (XElement item3 in Element3.Elements("NameValueList")) { Ebay_Transaction_VariationSpecifics model2 = new Ebay_Transaction_VariationSpecifics(); model2.Name = Convert.ToString(CustomIO.GetXmlElement(item3, "Name")); model2.Value = Convert.ToString(CustomIO.GetXmlElement(item3, "Value")); model.VariationSpecifics.Add(model2); } } model.Variation.VariationTitle = Convert.ToString(CustomIO.GetXmlElement(cElement, "VariationTitle")); model.Variation.VariationViewItemURL = Convert.ToString(CustomIO.GetXmlElement(cElement, "VariationViewItemURL")); } cElement = item2.Element("Taxes"); if (cElement != null) { if (cElement.Element("TotalTaxAmount") != null) { model.Taxes.TotalTaxAmount.currencyID = CustomIO.GetXmlAttribute(cElement.Element("TotalTaxAmount"), "currencyID"); model.Taxes.TotalTaxAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "TotalTaxAmount")); } foreach (XElement item3 in cElement.Elements("TaxDetails")) { Ebay_Transaction_TaxDetails model2 = new Ebay_Transaction_TaxDetails(); model2.Imposition = Convert.ToString(CustomIO.GetXmlElement(item3, "Imposition")); model2.TaxDescription = Convert.ToString(CustomIO.GetXmlElement(item3, "TaxDescription")); if (item3.Element("TaxAmount") != null) { model2.TaxAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxAmount"), "currencyID"); model2.TaxAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxAmount")); } if (item3.Element("TaxOnSubtotalAmount") != null) { model2.TaxOnSubtotalAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxOnSubtotalAmount"), "currencyID"); model2.TaxOnSubtotalAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxOnSubtotalAmount")); } if (item3.Element("TaxOnShippingAmount") != null) { model2.TaxOnShippingAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxOnShippingAmount"), "currencyID"); model2.TaxOnShippingAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxOnShippingAmount")); } if (item3.Element("TaxOnHandlingAmount") != null) { model2.TaxOnHandlingAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxOnHandlingAmount"), "currencyID"); model2.TaxOnHandlingAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxOnHandlingAmount")); } model.Taxes.TaxDetails.Add(model2); } if (item2.Element("ActualShippingCost") != null) { model.ActualShippingCost.currencyID = CustomIO.GetXmlAttribute(item2.Element("ActualShippingCost"), "currencyID"); model.ActualShippingCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item2, "ActualShippingCost")); } if (item2.Element("ActualHandlingCost") != null) { model.ActualHandlingCost.currencyID = CustomIO.GetXmlAttribute(item2.Element("ActualHandlingCost"), "currencyID"); model.ActualHandlingCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item2, "ActualHandlingCost")); } model.OrderLineItemID = CustomIO.GetXmlElement(item2, "OrderLineItemID"); Model.TransactionArray.Add(model); } } } Model.BuyerUserID = CustomIO.GetXmlElement(item, "BuyerUserID"); Model.SetPaidTime(CustomIO.GetXmlElement(item, "PaidTime")); Model.SetShippedTime(CustomIO.GetXmlElement(item, "ShippedTime")); Model.IntegratedMerchantCreditCardEnabled = Convert.ToBoolean(CustomIO.GetXmlElement(item, "IntegratedMerchantCreditCardEnabled")); Model.EIASToken = CustomIO.GetXmlElement(item, "EIASToken"); Model.PaymentHoldStatus = CustomIO.GetXmlElement(item, "PaymentHoldStatus"); return Model; } #endregion #region 订单分析 List ConvertOrderForTM(XElement item) { XElement cElement = null; List elist = new List(); Ebay_Order Model = new Ebay_Order(); Model.OrderStatus = CustomIO.GetXmlElement(item, "OrderStatus"); if (item.Element("AdjustmentAmount") != null) { Model.AdjustmentAmount.currencyID = CustomIO.GetXmlAttribute(item.Element("AdjustmentAmount"), "currencyID"); Model.AdjustmentAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "AdjustmentAmount")); } if (item.Element("AmountPaid") != null) { Model.AmountPaid.currencyID = CustomIO.GetXmlAttribute(item.Element("AmountPaid"), "currencyID"); Model.AmountPaid.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "AmountPaid")); } if (item.Element("AmountSaved") != null) { Model.AmountSaved.currencyID = CustomIO.GetXmlAttribute(item.Element("AmountSaved"), "currencyID"); Model.AmountSaved.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "AmountSaved")); } cElement = item.Element("CheckoutStatus"); if (cElement != null) { Model.CheckoutStatus.eBayPaymentStatus = CustomIO.GetXmlElement(cElement, "eBayPaymentStatus"); Model.CheckoutStatus.SetLastModifiedTime(CustomIO.GetXmlElement(cElement, "LastModifiedTime")); Model.CheckoutStatus.PaymentMethod = CustomIO.GetXmlElement(cElement, "PaymentMethod"); Model.CheckoutStatus.Status = CustomIO.GetXmlElement(cElement, "Status"); Model.CheckoutStatus.IntegratedMerchantCreditCardEnabled = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "IntegratedMerchantCreditCardEnabled")); } cElement = item.Element("ShippingDetails"); if (cElement != null) { Model.ShippingDetails.SellingManagerSalesRecordNumber = Convert.ToInt64(CustomIO.GetXmlElement(cElement, "SellingManagerSalesRecordNumber")); Model.ShippingDetails.GetItFast = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "GetItFast")); cElement = cElement.Element("SalesTax"); if (cElement != null) { Model.ShippingDetails.SalesTax.SalesTaxPercent = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "SalesTaxPercent")); Model.ShippingDetails.SalesTax.SalesTaxState = CustomIO.GetXmlElement(cElement, "SalesTaxState"); Model.ShippingDetails.SalesTax.ShippingIncludedInTax = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "ShippingIncludedInTax")); if (cElement.Element("SalesTaxAmount") != null) { Model.ShippingDetails.SalesTax.SalesTaxAmount.currencyID = CustomIO.GetXmlAttribute(cElement.Element("SalesTaxAmount"), "currencyID"); Model.ShippingDetails.SalesTax.SalesTaxAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "SalesTaxAmount")); } } cElement = item.Element("ShippingDetails").Element("ShippingServiceOptions"); if (cElement != null) { Model.ShippingDetails.ShippingServiceOptions.ShippingService = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShippingService")); if (cElement.Element("ShippingServiceCost") != null) { Model.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.currencyID = CustomIO.GetXmlAttribute(cElement.Element("ShippingServiceCost"), "currencyID"); Model.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "ShippingServiceCost")); } Model.ShippingDetails.ShippingServiceOptions.ShippingServicePriority = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "ShippingServicePriority")); Model.ShippingDetails.ShippingServiceOptions.ExpeditedService = Convert.ToBoolean(CustomIO.GetXmlElement(cElement, "ExpeditedService")); Model.ShippingDetails.ShippingServiceOptions.ShippingTimeMin = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "ShippingTimeMin")); Model.ShippingDetails.ShippingServiceOptions.ShippingTimeMax = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "ShippingTimeMax")); } } Model.CreatingUserRole = Convert.ToString(CustomIO.GetXmlElement(item, "CreatingUserRole")); Model.SetCreatedTime(CustomIO.GetXmlElement(item, "CreatedTime")); Model.PaymentMethods = Convert.ToString(CustomIO.GetXmlElement(item, "PaymentMethods")); Model.SellerEmail = Convert.ToString(CustomIO.GetXmlElement(item, "SellerEmail")); cElement = item.Element("ShippingAddress"); if (cElement != null) { Model.ShippingAddress.Name = Convert.ToString(CustomIO.GetXmlElement(cElement, "Name")); Model.ShippingAddress.Street1 = Convert.ToString(CustomIO.GetXmlElement(cElement, "Street1")); Model.ShippingAddress.Street2 = Convert.ToString(CustomIO.GetXmlElement(cElement, "Street2")); Model.ShippingAddress.CityName = Convert.ToString(CustomIO.GetXmlElement(cElement, "CityName")); Model.ShippingAddress.StateOrProvince = Convert.ToString(CustomIO.GetXmlElement(cElement, "StateOrProvince")); Model.ShippingAddress.Country = Convert.ToString(CustomIO.GetXmlElement(cElement, "Country")); Model.ShippingAddress.CountryName = Convert.ToString(CustomIO.GetXmlElement(cElement, "CountryName")); Model.ShippingAddress.Phone = Convert.ToString(CustomIO.GetXmlElement(cElement, "Phone")); Model.ShippingAddress.PostalCode = Convert.ToString(CustomIO.GetXmlElement(cElement, "PostalCode")); Model.ShippingAddress.AddressID = Convert.ToString(CustomIO.GetXmlElement(cElement, "AddressID")); Model.ShippingAddress.AddressOwner = Convert.ToString(CustomIO.GetXmlElement(cElement, "AddressOwner")); Model.ShippingAddress.ExternalAddressID = Convert.ToString(CustomIO.GetXmlElement(cElement, "ExternalAddressID")); } cElement = item.Element("ShippingServiceSelected"); if (cElement != null) { Model.ShippingServiceSelected.ShippingService = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShippingService")); if (cElement.Element("ShippingServiceCost") != null) { Model.ShippingServiceSelected.ShippingServiceCost.currencyID = CustomIO.GetXmlAttribute(cElement.Element("ShippingServiceCost"), "currencyID"); Model.ShippingServiceSelected.ShippingServiceCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "ShippingServiceCost")); } } if (item.Element("Subtotal") != null) { Model.Subtotal.currencyID = CustomIO.GetXmlAttribute(item.Element("Subtotal"), "currencyID"); Model.Subtotal.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "Subtotal")); } if (item.Element("Total") != null) { Model.Total.currencyID = CustomIO.GetXmlAttribute(item.Element("Total"), "currencyID"); Model.Total.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item, "Total")); } Model.CreatingUserRole = Convert.ToString(CustomIO.GetXmlElement(item, "CreatingUserRole")); Model.CreatingUserRole = Convert.ToString(CustomIO.GetXmlElement(item, "CreatingUserRole")); Model.BuyerUserID = CustomIO.GetXmlElement(item, "BuyerUserID"); Model.SetPaidTime(CustomIO.GetXmlElement(item, "PaidTime")); Model.SetShippedTime(CustomIO.GetXmlElement(item, "ShippedTime")); Model.IntegratedMerchantCreditCardEnabled = Convert.ToBoolean(CustomIO.GetXmlElement(item, "IntegratedMerchantCreditCardEnabled")); Model.EIASToken = CustomIO.GetXmlElement(item, "EIASToken"); Model.PaymentHoldStatus = CustomIO.GetXmlElement(item, "PaymentHoldStatus"); XElement Element2 = item.Element("TransactionArray"); if (Element2 != null) { foreach (XElement item2 in Element2.Elements("Transaction")) { Ebay_Transaction model = new Ebay_Transaction(); cElement = item2.Element("Buyer"); model.Buyer.Email = Convert.ToString(CustomIO.GetXmlElement(cElement, "Email")); model.Buyer.UserFirstName = Convert.ToString(CustomIO.GetXmlElement(cElement, "UserFirstName")); model.Buyer.UserLastName = Convert.ToString(CustomIO.GetXmlElement(cElement, "UserLastName")); cElement = item2.Element("ShippingDetails"); if (cElement != null) { Model.OrderID = "632" + CustomIO.GetXmlElement(cElement, "SellingManagerSalesRecordNumber"); model.ShippingDetails.SellingManagerSalesRecordNumber = Convert.ToInt32(CustomIO.GetXmlElement(cElement, "SellingManagerSalesRecordNumber")); cElement = cElement.Element("ShipmentTrackingDetails"); if (cElement != null) { model.ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShippingCarrierUsed")); model.ShippingDetails.ShipmentTrackingDetails.ShipmentTrackingNumber = Convert.ToString(CustomIO.GetXmlElement(cElement, "ShipmentTrackingNumber")); } } model.SetCreatedDate(CustomIO.GetXmlElement(item2, "CreatedDate")); cElement = item2.Element("Item"); if (cElement != null) { model.Item.ItemID = Convert.ToString(CustomIO.GetXmlElement(cElement, "ItemID")); model.Item.Site = Convert.ToString(CustomIO.GetXmlElement(cElement, "Site")); model.Item.Title = Convert.ToString(CustomIO.GetXmlElement(cElement, "Title")); model.Item.SKU = Convert.ToString(CustomIO.GetXmlElement(cElement, "SKU")); model.Item.ConditionID = Convert.ToString(CustomIO.GetXmlElement(cElement, "ConditionID")); model.Item.ConditionDisplayName = Convert.ToString(CustomIO.GetXmlElement(cElement, "ConditionDisplayName")); } model.QuantityPurchased = Convert.ToInt32(CustomIO.GetXmlElement(item2, "QuantityPurchased")); cElement = item2.Element("Status"); if (cElement != null) { model.Status.PaymentHoldStatus = Convert.ToString(CustomIO.GetXmlElement(cElement, "PaymentHoldStatus")); } model.TransactionID = Convert.ToString(CustomIO.GetXmlElement(item2, "TransactionID")); if (item2.Element("TransactionPrice") != null) { model.TransactionPrice.currencyID = CustomIO.GetXmlAttribute(item2.Element("TransactionPrice"), "currencyID"); model.TransactionPrice.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item2, "TransactionPrice")); } model.TransactionSiteID = Convert.ToString(CustomIO.GetXmlElement(item2, "TransactionSiteID")); model.Platform = Convert.ToString(CustomIO.GetXmlElement(item2, "Platform")); cElement = item2.Element("Variation"); if (cElement != null) { model.Variation.SKU = Convert.ToString(CustomIO.GetXmlElement(cElement, "SKU")); XElement Element3 = cElement.Element("VariationSpecifics"); if (Element3 != null) { foreach (XElement item3 in Element3.Elements("NameValueList")) { Ebay_Transaction_VariationSpecifics model2 = new Ebay_Transaction_VariationSpecifics(); model2.Name = Convert.ToString(CustomIO.GetXmlElement(item3, "Name")); model2.Value = Convert.ToString(CustomIO.GetXmlElement(item3, "Value")); model.VariationSpecifics.Add(model2); } } model.Variation.VariationTitle = Convert.ToString(CustomIO.GetXmlElement(cElement, "VariationTitle")); model.Variation.VariationViewItemURL = Convert.ToString(CustomIO.GetXmlElement(cElement, "VariationViewItemURL")); } cElement = item2.Element("Taxes"); if (cElement != null) { if (cElement.Element("TotalTaxAmount") != null) { model.Taxes.TotalTaxAmount.currencyID = CustomIO.GetXmlAttribute(cElement.Element("TotalTaxAmount"), "currencyID"); model.Taxes.TotalTaxAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(cElement, "TotalTaxAmount")); } foreach (XElement item3 in cElement.Elements("TaxDetails")) { Ebay_Transaction_TaxDetails model2 = new Ebay_Transaction_TaxDetails(); model2.Imposition = Convert.ToString(CustomIO.GetXmlElement(item3, "Imposition")); model2.TaxDescription = Convert.ToString(CustomIO.GetXmlElement(item3, "TaxDescription")); if (item3.Element("TaxAmount") != null) { model2.TaxAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxAmount"), "currencyID"); model2.TaxAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxAmount")); } if (item3.Element("TaxOnSubtotalAmount") != null) { model2.TaxOnSubtotalAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxOnSubtotalAmount"), "currencyID"); model2.TaxOnSubtotalAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxOnSubtotalAmount")); } if (item3.Element("TaxOnShippingAmount") != null) { model2.TaxOnShippingAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxOnShippingAmount"), "currencyID"); model2.TaxOnShippingAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxOnShippingAmount")); } if (item3.Element("TaxOnHandlingAmount") != null) { model2.TaxOnHandlingAmount.currencyID = CustomIO.GetXmlAttribute(item3.Element("TaxOnHandlingAmount"), "currencyID"); model2.TaxOnHandlingAmount.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item3, "TaxOnHandlingAmount")); } model.Taxes.TaxDetails.Add(model2); } if (item2.Element("ActualShippingCost") != null) { model.ActualShippingCost.currencyID = CustomIO.GetXmlAttribute(item2.Element("ActualShippingCost"), "currencyID"); model.ActualShippingCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item2, "ActualShippingCost")); } if (item2.Element("ActualHandlingCost") != null) { model.ActualHandlingCost.currencyID = CustomIO.GetXmlAttribute(item2.Element("ActualHandlingCost"), "currencyID"); model.ActualHandlingCost.Price = Convert.ToDecimal(CustomIO.GetXmlElement(item2, "ActualHandlingCost")); } model.OrderLineItemID = CustomIO.GetXmlElement(item2, "OrderLineItemID"); } Model.TransactionArray.Add(model); elist.Add(Model); } } return elist; } #endregion #region 订单数据上传 public string senderorder(Eub_Order model,JC_PostAddress2 Addr, string Token, string groupname) { string[] orderstr = model.OrderCode.Split('-'); StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append("" + DeveKey + ""); //eBay 开发者 ID sb.Append("" + Token + ""); //eBay token sb.Append("" + groupname + ""); //卖家 eBay 账户 sb.Append("" + Appkey + ""); // sb.Append("" + CertKey + ""); //sb.Append(""); sb.Append("4.0.0"); //APAC Shipping Platform API 版本, sb.Append("CNPOST"); // sb.Append("EPACK"); sb.Append(""); sb.Append("0"); //揽收方式 sb.Append(""); //揽收地址信息。 国际 e 邮宝的订单必须使用中文地址。 sb.Append(""+Addr.SendName+""); //联系人 sb.Append(""+Addr.CompanyName+""); // sb.Append(""+Addr.Address+""); sb.Append("" + Addr.county + ""); sb.Append("" + Addr.city + ""); sb.Append("" + Addr.province + ""); sb.Append("" + Addr.PostCode + ""); sb.Append("CN"); sb.Append(""+Addr.Email+""); sb.Append(""+Addr.Phone+""); sb.Append("" + Addr.Phone + ""); sb.Append(""); sb.Append(""); //寄件人地址信息,必须以英文填写。 sb.Append("" + Addr.SendEnglishName + ""); sb.Append("" + Addr.CompanyEnglishName + ""); sb.Append("" + Addr.EnglishAddress + ""); sb.Append("" + Addr.countycode + ""); sb.Append("" + Addr.citycode + ""); sb.Append("" + Addr.provincecode + ""); sb.Append("" + Addr.PostCode + ""); sb.Append("CN"); sb.Append("" + Addr.Email + ""); sb.Append("" + Addr.Phone + ""); sb.Append("" + Addr.Phone + ""); sb.Append(""); sb.Append(""); //收件人地址信息。 sb.Append(""+model.receiver.name+""); sb.Append("" + model.receiver.name + ""); sb.Append("" + model.receiver.street + ""); sb.Append("" + model.receiver.county + ""); sb.Append("" + model.receiver.city + ""); sb.Append("" + model.receiver.province + ""); sb.Append("" + model.receiver.postcode + ""); sb.Append("" + model.receiver.country + ""); sb.Append("" + model.receiver.email + ""); sb.Append("" + model.receiver.mobile + ""); sb.Append("" + model.receiver.phone + ""); sb.Append(""); sb.Append(""); //退货地址信息,对国际 e 邮宝,请填写中文地址 sb.Append("" + Addr.SendName + ""); //联系人 sb.Append("" + Addr.CompanyName + ""); // sb.Append("" + Addr.Address + ""); sb.Append("" + Addr.county + ""); sb.Append("" + Addr.city + ""); sb.Append("" + Addr.province + ""); sb.Append("" + Addr.PostCode + ""); sb.Append("CN"); sb.Append("" + Addr.Email + ""); sb.Append("" + Addr.Phone + ""); sb.Append("" + Addr.Phone + ""); sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); sb.Append(""); sb.Append(""); sb.Append("" + orderstr[0] + ""); //eBay 物品号 sb.Append(""); //eBay 交易号,拍卖的物品请输入 0 sb.Append(""+model.BuyID+""); //eBay 买家 ID //sb.Append(""); //sb.Append(""); //sb.Append(""); sb.Append(""+model.ListGoods.Sum(o=>o.count)+""); //寄货数量,不能为 0 //sb.Append(""); //sb.Append(""); //sb.Append(""); //sb.Append(""); foreach (var q in model.ListGoods) { sb.Append(""); sb.Append(""+q.unit+""); //物品申报价值 sb.Append(""+q.weight+""); sb.Append(""+q.cnname+""); //国际 e 邮宝包裹请填中文报关名 sb.Append(""+q.enname+""); //英文报关名称 sb.Append("CN"); sb.Append(""); } sb.Append(""); sb.Append(""); sb.Append(""); string PostXmlTemplate = sb.ToString(); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(PostXmlTemplate); string ErrorMessage = ""; string XmlContent = CustomIO.HttpRequest2("https://api.apacshipping.ebay.com.hk/aspapi/v4/ApacShippingService", "POST", "", null, HttpVersion.Version10, data, out ErrorMessage); if (XmlContent == "") return null; XmlContent = XmlContent.Replace(" xmlns=\"urn:ebay:apis:eBLBaseComponents\"", ""); return ""; } #endregion #region 读取订单 public List GetOrders(DateTime? StartDate, DateTime? StopDate, string Token, out string ErrorMessage) { StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append("" + Token + ""); sb.Append(""); sb.Append("Seller"); sb.Append("" + StartDate.Value.ToString("yyyy-MM-dd") + ""); if (StopDate!=null) sb.Append("" + StopDate.Value.ToString("yyyy-MM-dd HH:mm:ss") + ""); sb.Append(""); sb.Append("100"); sb.Append("@Page@"); sb.Append(""); sb.Append(""); string PostXmlTemplate = sb.ToString(); List ListHeader = new List(); ListHeader.Add("X-EBAY-API-COMPATIBILITY-LEVEL:" + Level); ListHeader.Add("X-EBAY-API-DEV-NAME:" + DeveKey); ListHeader.Add("X-EBAY-API-APP-NAME:" + Appkey); ListHeader.Add("X-EBAY-API-CERT-NAME:" + CertKey); ListHeader.Add("X-EBAY-API-SITEID:0"); ListHeader.Add("X-EBAY-API-CALL-NAME:GetOrders"); string postmessage = PostXmlTemplate.Replace("@Page@", "1"); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(postmessage); string XmlContent = CustomIO.HttpRequest2("https://api.ebay.com/ws/api.dll", "POST", "", ListHeader,HttpVersion.Version10,data, out ErrorMessage); if (XmlContent == "") return null; XmlContent = XmlContent.Replace(" xmlns=\"urn:ebay:apis:eBLBaseComponents\"", ""); List ListModel = new List(); XElement doc = XElement.Parse(XmlContent); XElement doc_Order = doc.Element("OrderArray"); if (doc_Order == null) return null; foreach (XElement item in doc_Order.Elements("Order")) { if (CustomIO.GetXmlElement(item, "PaidTime")=="") continue; Ebay_Order model = ConvertOrder(item); //model.CheckoutStatus.Status = ""; if (model.PaidTime == null) continue; OrderModel model2 = model.ToOrderModel(); ListModel.Add(model2); } int PageCount = Convert.ToInt32(CustomIO.GetXmlElement(doc.Element("PaginationResult"), "TotalNumberOfPages")); if (PageCount > 1) { for (int i = 1; i < PageCount; i++) { postmessage = PostXmlTemplate.Replace("@Page@", (i + 1).ToString()); data = encoding.GetBytes(postmessage); XmlContent = CustomIO.HttpRequest2("https://api.ebay.com/ws/api.dll", "POST", "", ListHeader, HttpVersion.Version10, data, out ErrorMessage); if (XmlContent == "") return ListModel; XmlContent = XmlContent.Replace(" xmlns=\"urn:ebay:apis:eBLBaseComponents\"", ""); doc = XElement.Parse(XmlContent); doc_Order = doc.Element("OrderArray"); if (doc_Order != null) { foreach (XElement item in doc_Order.Elements("Order")) { if (CustomIO.GetXmlElement(item, "PaidTime") == "") continue; Ebay_Order model = ConvertOrder(item); OrderModel model2 = model.ToOrderModel(); ListModel.Add(model2); } } } } return ListModel; } public List GetOrdersForTM(DateTime? StartDate, DateTime? StopDate, string Token, out string ErrorMessage) { StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append("" + Token + ""); sb.Append(""); sb.Append("Seller"); sb.Append("" + StartDate.Value.ToString("yyyy-MM-dd") + ""); if (StopDate != null) sb.Append("" + StopDate.Value.ToString("yyyy-MM-dd HH:mm:ss") + ""); sb.Append(""); sb.Append("100"); sb.Append("@Page@"); sb.Append(""); sb.Append(""); string PostXmlTemplate = sb.ToString(); List ListHeader = new List(); ListHeader.Add("X-EBAY-API-COMPATIBILITY-LEVEL:" + Level); ListHeader.Add("X-EBAY-API-DEV-NAME:" + DeveKey); ListHeader.Add("X-EBAY-API-APP-NAME:" + Appkey); ListHeader.Add("X-EBAY-API-CERT-NAME:" + CertKey); ListHeader.Add("X-EBAY-API-SITEID:0"); ListHeader.Add("X-EBAY-API-CALL-NAME:GetOrders"); string postmessage = PostXmlTemplate.Replace("@Page@", "1"); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data = encoding.GetBytes(postmessage); string XmlContent = CustomIO.HttpRequest2("https://api.ebay.com/ws/api.dll", "POST", "", ListHeader, HttpVersion.Version10, data, out ErrorMessage); if (XmlContent == "") return null; XmlContent = XmlContent.Replace(" xmlns=\"urn:ebay:apis:eBLBaseComponents\"", ""); List ListModel = new List(); XElement doc = XElement.Parse(XmlContent); XElement doc_Order = doc.Element("OrderArray"); if (doc_Order == null) return null; foreach (XElement item in doc_Order.Elements("Order")) { if (item.Elements("PaidTime").Count() == 0 || item.Element("PaidTime").Value == "") continue; // Ebay_Order model = ConvertOrder(item); //model.CheckoutStatus.Status = ""; //if (model.PaidTime == null) continue; var Olist = Ebay_Order.AddOrderModel(item,ShopNo); if (Olist == null) continue; foreach (var md in Olist) { ListModel.Add(md); } } int PageCount = Convert.ToInt32(CustomIO.GetXmlElement(doc.Element("PaginationResult"), "TotalNumberOfPages")); if (PageCount > 1) { for (int i = 1; i < PageCount; i++) { postmessage = PostXmlTemplate.Replace("@Page@", (i + 1).ToString()); data = encoding.GetBytes(postmessage); XmlContent = CustomIO.HttpRequest2("https://api.ebay.com/ws/api.dll", "POST", "", ListHeader, HttpVersion.Version10, data, out ErrorMessage); if (XmlContent == "") return ListModel; XmlContent = XmlContent.Replace(" xmlns=\"urn:ebay:apis:eBLBaseComponents\"", ""); doc = XElement.Parse(XmlContent); doc_Order = doc.Element("OrderArray"); if (doc_Order != null) { foreach (XElement item in doc_Order.Elements("Order")) { if (item.Elements("PaidTime").Count() == 0 || item.Element("PaidTime").Value== "") continue; var Olist = Ebay_Order.AddOrderModel(item, ShopNo); if (Olist == null) continue; foreach (var md in Olist) { ListModel.Add(md); } } } } } return ListModel; } #endregion #region 发货上传跟踪码 public string CompleteSale(string Token,string ItemID,string Post,string TrackCode, DateTime? ShippedTime) { string[] itemlist = ItemID.Split('-'); StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append(""); sb.Append("" + Token + ""); sb.Append(""); sb.Append("High"); // sb.Append(""); //sb.Append("Wonderful buyer, very fast payment.");//对买家评价 //sb.Append("Positive");//对买家评价 //sb.Append("bountifulbuyer");//买家用户 //sb.Append(""); sb.Append("" + itemlist[0] + "");//订单号 // sb.Append("" + ItemID + "");//订单号 sb.Append("true"); sb.Append(""); sb.Append(""); sb.Append("" + TrackCode + ""); sb.Append(""+Post+""); sb.Append(""); sb.Append("" + ShippedTime.Value.ToString("yyyy-MM-dd HH:mm:ss") + ""); sb.Append(""); sb.Append("true"); sb.Append("" + itemlist [1]+ ""); sb.Append(""); string PostXmlTemplate = sb.ToString(); List ListHeader = new List(); ListHeader.Add("X-EBAY-API-COMPATIBILITY-LEVEL:923"); ListHeader.Add("X-EBAY-API-DEV-NAME:" + DeveKey); ListHeader.Add("X-EBAY-API-APP-NAME:" + Appkey); ListHeader.Add("X-EBAY-API-CERT-NAME:" + CertKey); ListHeader.Add("X-EBAY-API-SITEID:0"); ListHeader.Add("X-EBAY-API-CALL-NAME:CompleteSale"); string postmessage = PostXmlTemplate;//.Replace("@Page@", "1"); ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data =encoding.GetBytes(postmessage); string ErrorMessage = ""; string XmlContent = CustomIO.HttpRequest2("https://api.ebay.com/ws/api.dll", "POST", "", ListHeader, HttpVersion.Version10, data, out ErrorMessage); if (XmlContent == "") return "失败"; XmlContent = XmlContent.Replace(" xmlns=\"urn:ebay:apis:eBLBaseComponents\"", ""); XElement doc = XElement.Parse(XmlContent).Element("Ack"); string a = doc.Value; return a; } #endregion #region 转换 List ToListOrderModel(List ListModel) { List ListModel2 = new List(); foreach (var item in ListModel) { OrderModel model = item.ToOrderModel(); ListModel2.Add(model); } return ListModel2; } #endregion } public class JC_PostAddress2 { public Int32? Id { get; set; } public Int32? CompanyId { get; set; } public String SendName { get; set; } public String SendEnglishName { get; set; } public String Address { get; set; } public String EnglishAddress { get; set; } public String Phone { get; set; } public String PostCode { get; set; } public String province { get; set; } public String city { get; set; } public String county { get; set; } public String street { get; set; } public String provincecode { get; set; } public String citycode { get; set; } public String countycode { get; set; } public String streetcode { get; set; } public String CompanyName { get; set; } public String Email { get; set; } public String CompanyEnglishName { get; set; } } public class Ebay_Order { public string PlatOrderID { get; set; } public string OrderID { get; set; } public string OrderStatus { get; set; } public Ebay_Amount AdjustmentAmount { get; set; } public Ebay_Amount AmountPaid { get; set; } public Ebay_Amount AmountSaved { get; set; } public Ebay_CheckoutStatus CheckoutStatus { get; set; } public Ebay_ShippingDetails ShippingDetails { get; set; } public string CreatingUserRole { get; set; } public DateTime? CreatedTime { get; set; } public string PaymentMethods { get; set; } public string SellerEmail { get; set; } public Ebay_Amount Subtotal { get; set; } public Ebay_Amount Total { get; set; } public string BuyerUserID { get; set; } public DateTime? PaidTime { get; set; } public DateTime? ShippedTime { get; set; } public bool IntegratedMerchantCreditCardEnabled { get; set; } public string EIASToken { get; set; } public string PaymentHoldStatus { get; set; } public Ebay_ShippingAddress ShippingAddress { get; set; } public Ebay_ShippingServiceSelected ShippingServiceSelected { get; set; } public List TransactionArray { get; set; } public Ebay_Order() { AdjustmentAmount = new Ebay_Amount(); AmountPaid = new Ebay_Amount(); AmountSaved = new Ebay_Amount(); CheckoutStatus = new Ebay_CheckoutStatus(); ShippingDetails = new Ebay_ShippingDetails(); Subtotal = new Ebay_Amount(); Total = new Ebay_Amount(); ShippingAddress = new Ebay_ShippingAddress(); ShippingServiceSelected = new Ebay_ShippingServiceSelected(); TransactionArray = new List(); } public void SetCreatedTime(string dt) { if (string.IsNullOrEmpty(dt) == true) return; dt = dt.Replace("T", " "); dt = dt.Remove(dt.Length - 1); this.CreatedTime = Convert.ToDateTime(dt).AddHours(8); } public void SetPaidTime(string dt) { if (string.IsNullOrEmpty(dt) == true) return; dt = dt.Replace("T", " "); dt = dt.Remove(dt.Length - 1); this.PaidTime = Convert.ToDateTime(dt); } public void SetShippedTime(string dt) { if (string.IsNullOrEmpty(dt) == true) return; dt = dt.Replace("T", " "); dt = dt.Remove(dt.Length - 1); this.ShippedTime = Convert.ToDateTime(dt); } #region 转换成统一的订单对象 public OrderModel ToOrderModel() { OrderModel model = new OrderModel(); model.OrderCode = this.OrderID; model.PlatOrderCode = this.PlatOrderID; model.TotalPrice = this.Total.Price; model.MoneyCode = this.Total.currencyID; model.OrderDate = this.CreatedTime; model.BuyerID = this.BuyerUserID; model.BuyerName = this.ShippingAddress.Name; model.BuyerCountry = this.ShippingAddress.CountryName; model.BuyerAddr = this.ShippingAddress.Street1; if (string.IsNullOrEmpty(this.ShippingAddress.Street2) == false) model.BuyerAddr += "," + this.ShippingAddress.Street2; model.BuyerPhone = this.ShippingAddress.Phone; model.BuyerMobile = ""; model.BuyerFax = ""; model.BuyerZip = this.ShippingAddress.PostalCode; model.BuyerProvince = this.ShippingAddress.StateOrProvince; model.BuyerCity = this.ShippingAddress.CityName; model.BuyerArea = ""; model.OrderRemark = ""; //memo model.LeaveWord = ""; model.PayDate = this.PaidTime; model.OutOrderDate = null; if (this.TransactionArray != null) model.PostInfo = this.TransactionArray[0].ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed; model.ListModel = new List(); if (this.TransactionArray != null) { foreach (var item2 in this.TransactionArray) { if (item2.Buyer.Email != null && item2.Buyer.Email!="") model.BuyerMail = item2.Buyer.Email; OrderDetailModel model2 = new OrderDetailModel(); model2.GoodsNum = item2.QuantityPurchased; model2.GoodsPrice = item2.TransactionPrice.Price; model2.MoneyCode = item2.TransactionPrice.currencyID; model2.GoodsName = item2.Item.Title; if (item2.Variation.SKU != null && item2.Variation.SKU!="") model2.GoodsSKU = item2.Variation.SKU; else model2.GoodsSKU = item2.Item.SKU; model2.PostInfo = item2.ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed; model.ListModel.Add(model2); } } return model; } #endregion #region 转换成统一的订单对象 public static List AddOrderModel(XElement item,string ShopNo) { List elist = new List(); Ebay_Order Model = new Ebay_Order(); List ListModel = new List(); XElement Element2 = item.Element("TransactionArray"); if (Element2 != null) { int ONum = Element2.Elements("Transaction").Count(); string HBOrder=""; foreach (XElement item2 in Element2.Elements("Transaction")) { OrderModel model = new OrderModel(); model.OrderCode = ShopNo + item2.Element("ShippingDetails").Element("SellingManagerSalesRecordNumber").Value;//订单编号 model.PlatOrderCode = item2.Element("OrderLineItemID").Value;//OrderLineItemID if (ONum > 1 && HBOrder == "") { HBOrder = "M" + ShopNo + item.Element("ShippingDetails").Element("SellingManagerSalesRecordNumber").Value; } if (HBOrder != "") model.HBOrderCode = HBOrder; #region 计算每笔订单的运费 Decimal? ActualShippingCost = 0; if (item2.Elements("ActualShippingCost").Count() > 0 && item2.Element("ActualShippingCost").Value != "0.0") ActualShippingCost = Convert.ToDecimal(item2.Element("ActualShippingCost").Value); if (item.Elements("ShippingServiceSelected").Count() > 0) if (item.Element("ShippingServiceSelected").Elements("ShippingServiceCost").Count() > 0) ActualShippingCost = Convert.ToDecimal(item.Element("ShippingServiceSelected").Element("ShippingServiceCost").Value) /item.Element("TransactionArray").Elements("Transaction").Count(); #endregion model.TotalPrice = Convert.ToDecimal(item2.Element("TransactionPrice").Value) *Convert.ToDecimal(item2.Element("QuantityPurchased").Value) + ActualShippingCost;//总价格 model.MoneyCode = item.Element("Total").Attribute("currencyID").Value;//币种 if (item.Element("PaidTime")!=null) model.OrderDate = Convert.ToDateTime(item.Element("PaidTime").Value.Substring(0, 18).Replace("T", " "));//到账时间 model.BuyerID = item.Element("BuyerUserID").Value;//EB买家ID model.BuyerName = item.Element("ShippingAddress").Element("Name").Value; model.BuyerCountry = item.Element("ShippingAddress").Element("CountryName").Value; model.BuyerAddr = item.Element("ShippingAddress").Element("Street1").Value; if (string.IsNullOrEmpty(item.Element("ShippingAddress").Element("Street2").Value) == false) model.BuyerAddr += "," + item.Element("ShippingAddress").Element("Street2").Value; model.BuyerPhone = item.Element("ShippingAddress").Element("Phone").Value; model.BuyerMobile = ""; if (item2.Element("Buyer").Element("Email")!=null&&item2.Element("Buyer").Element("Email").Value != null && item2.Element("Buyer").Element("Email").Value!="") model.BuyerMail = item2.Element("Buyer").Element("Email").Value;//电子邮件 model.BuyerFax = ""; model.BuyerZip = item.Element("ShippingAddress").Element("PostalCode").Value; model.BuyerProvince = item.Element("ShippingAddress").Element("StateOrProvince").Value; model.BuyerCity = item.Element("ShippingAddress").Element("CityName").Value; model.BuyerArea = ""; model.OrderRemark = ""; //memo if (item.Elements("BuyerCheckoutMessage").Count() > 0) model.LeaveWord = item.Element("BuyerCheckoutMessage").Value;//买家留言 else model.LeaveWord = ""; if (item.Element("PaidTime") != null) model.PayDate = Convert.ToDateTime(item.Element("PaidTime").Value.Substring(0, 18).Replace("T", " "));//到账时间 model.OutOrderDate = null; //if (this.TransactionArray != null) model.PostInfo = this.TransactionArray[0].ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed; model.ListModel = new List(); OrderDetailModel model2 = new OrderDetailModel(); model2.GoodsNum = Convert.ToInt32(item2.Element("QuantityPurchased").Value); model2.GoodsPrice = null; if (item2.Elements("Variation").Elements("SKU").Count() > 0) { foreach (var e in item2.Element("Variation").Element("VariationSpecifics").Elements("NameValueList")) { model2.TypeDesc += e.Element("Name").Value + ":" + e.Element("Value").Value + ";"; } } model2.MoneyCode = model.MoneyCode; if (item2.Elements("Variation").Elements("VariationTitle").Count() > 0) model2.GoodsName = item2.Element("Variation").Element("VariationTitle").Value; else if (item2.Elements("Item").Elements("Title").Count() > 0) model2.GoodsName = item2.Element("Item").Element("Title").Value; if (item2.Elements("Variation").Elements("SKU").Count() > 0) model2.GoodsSKU = item2.Element("Variation").Element("SKU").Value; else if (item2.Elements("Item").Elements("SKU").Count() > 0) model2.GoodsSKU = item2.Element("Item").Element("SKU").Value; // model2.PostInfo = item2.ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed; model.ListModel.Add(model2); ListModel.Add(model); } } return ListModel; } #endregion #region 转换成统一的订单对象 public static List AddOrderModel2(XElement item, string ShopNo) { List elist = new List(); Ebay_Order Model = new Ebay_Order(); List ListModel = new List(); OrderModel model = new OrderModel(); model.OrderCode = CustomIO.GetXmlElement(item, "OrderID"); model.PlatOrderCode = model.OrderCode; string OrderStatus = CustomIO.GetXmlElement(item, "OrderStatus"); XElement Element2 = item.Element("TransactionArray"); if (Element2 != null) { int ONum = Element2.Elements("Transaction").Count(); // string HBOrder = ""; foreach (XElement item2 in Element2.Elements("Transaction")) { //if (ONum > 1 && HBOrder == "") //{ // HBOrder = "M" + ShopNo + item.Element("ShippingDetails").Element("SellingManagerSalesRecordNumber").Value; //} //if (HBOrder != "") // model.HBOrderCode = HBOrder; #region 计算每笔订单的运费 Decimal? ActualShippingCost = 0; if (item2.Elements("ActualShippingCost").Count() > 0 && item2.Element("ActualShippingCost").Value != "0.0") ActualShippingCost = Convert.ToDecimal(item2.Element("ActualShippingCost").Value); if (item.Elements("ShippingServiceSelected").Count() > 0) if (item.Element("ShippingServiceSelected").Elements("ShippingServiceCost").Count() > 0) ActualShippingCost = Convert.ToDecimal(item.Element("ShippingServiceSelected").Element("ShippingServiceCost").Value) / item.Element("TransactionArray").Elements("Transaction").Count(); #endregion model.TotalPrice = Convert.ToDecimal(item2.Element("TransactionPrice").Value) * Convert.ToDecimal(item2.Element("QuantityPurchased").Value) + ActualShippingCost;//总价格 model.MoneyCode = item.Element("Total").Attribute("currencyID").Value;//币种 if (item.Element("PaidTime") != null) model.OrderDate = Convert.ToDateTime(item.Element("PaidTime").Value.Substring(0, 18).Replace("T", " "));//到账时间 model.BuyerID = item.Element("BuyerUserID").Value;//EB买家ID model.BuyerName = item.Element("ShippingAddress").Element("Name").Value; model.BuyerCountry = item.Element("ShippingAddress").Element("CountryName").Value; model.BuyerAddr = item.Element("ShippingAddress").Element("Street1").Value; if (string.IsNullOrEmpty(item.Element("ShippingAddress").Element("Street2").Value) == false) model.BuyerAddr += "," + item.Element("ShippingAddress").Element("Street2").Value; model.BuyerPhone = item.Element("ShippingAddress").Element("Phone").Value; model.BuyerMobile = ""; if (item2.Element("Buyer").Element("Email").Value != null && item2.Element("Buyer").Element("Email").Value != "") model.BuyerMail = item2.Element("Buyer").Element("Email").Value;//电子邮件 model.BuyerFax = ""; model.BuyerZip = item.Element("ShippingAddress").Element("PostalCode").Value; model.BuyerProvince = item.Element("ShippingAddress").Element("StateOrProvince").Value; model.BuyerCity = item.Element("ShippingAddress").Element("CityName").Value; model.BuyerArea = ""; model.OrderRemark = ""; //memo if (item.Elements("BuyerCheckoutMessage").Count() > 0) model.LeaveWord = item.Element("BuyerCheckoutMessage").Value;//买家留言 else model.LeaveWord = ""; if (item.Element("PaidTime") != null) model.PayDate = Convert.ToDateTime(item.Element("PaidTime").Value.Substring(0, 18).Replace("T", " "));//到账时间 model.OutOrderDate = null; //if (this.TransactionArray != null) model.PostInfo = this.TransactionArray[0].ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed; model.ListModel = new List(); OrderDetailModel model2 = new OrderDetailModel(); model2.GoodsNum = Convert.ToInt32(item2.Element("QuantityPurchased").Value); model2.GoodsPrice = null; if (item2.Elements("Variation").Elements("SKU").Count() > 0) { foreach (var e in item2.Element("Variation").Element("VariationSpecifics").Elements("NameValueList")) { model2.TypeDesc += e.Element("Name").Value + ":" + e.Element("Value").Value + ";"; } } model2.MoneyCode = model.MoneyCode; if (item2.Elements("Variation").Elements("VariationTitle").Count() > 0) model2.GoodsName = item2.Element("Variation").Element("VariationTitle").Value; else if (item2.Elements("Item").Elements("Title").Count() > 0) model2.GoodsName = item2.Element("Item").Element("Title").Value; if (item2.Elements("Variation").Elements("SKU").Count() > 0) model2.GoodsSKU = item2.Element("Variation").Element("SKU").Value; else if (item2.Elements("Item").Elements("SKU").Count() > 0) model2.GoodsSKU = item2.Element("Item").Element("SKU").Value; // model2.PostInfo = item2.ShippingDetails.ShipmentTrackingDetails.ShippingCarrierUsed; model.ListModel.Add(model2); ListModel.Add(model); } } return ListModel; } #endregion } public class Ebay_Amount { public string currencyID { get; set; } public decimal Price { get; set; } } public class Ebay_CheckoutStatus { public string eBayPaymentStatus { get; set; } public DateTime? LastModifiedTime { get; set; } public string PaymentMethod { get; set; } public string Status { get; set; } public bool IntegratedMerchantCreditCardEnabled { get; set; } public void SetLastModifiedTime(string dt) { if (string.IsNullOrEmpty(dt) == true) return; dt = dt.Replace("T", " "); dt = dt.Remove(dt.Length - 1); this.LastModifiedTime = Convert.ToDateTime(dt); } } public class Ebay_ShippingDetails { public Int64 SellingManagerSalesRecordNumber { get; set; } public bool GetItFast { get; set; } public Ebay_SalesTax SalesTax { get; set; } public Ebay_ShippingServiceOptions ShippingServiceOptions { get; set; } public Ebay_ShippingDetails() { SalesTax = new Ebay_SalesTax(); ShippingServiceOptions = new Ebay_ShippingServiceOptions(); } } public class Ebay_SalesTax { public decimal SalesTaxPercent { get; set; } public string SalesTaxState { get; set; } public bool ShippingIncludedInTax { get; set; } public Ebay_Amount SalesTaxAmount { get; set; } public Ebay_SalesTax() { SalesTaxAmount = new Ebay_Amount(); } } public class Ebay_ShippingServiceOptions { public string ShippingService { get; set; } public Ebay_Amount ShippingServiceCost { get; set; } public int ShippingServicePriority { get; set; } public bool ExpeditedService { get; set; } public int ShippingTimeMin { get; set; } public int ShippingTimeMax { get; set; } public Ebay_ShippingServiceOptions() { ShippingServiceCost = new Ebay_Amount(); } } public class Ebay_ShippingAddress { public string Name { get; set; } public string Street1 { get; set; } public string Street2 { get; set; } public string CityName { get; set; } public string StateOrProvince { get; set; } public string Country { get; set; } public string CountryName { get; set; } public string Phone { get; set; } public string PostalCode { get; set; } public string AddressID { get; set; } public string AddressOwner { get; set; } public string ExternalAddressID { get; set; } } public class Ebay_ShippingServiceSelected { public string ShippingService { get; set; } public Ebay_Amount ShippingServiceCost { get; set; } public Ebay_ShippingServiceSelected() { ShippingServiceCost = new Ebay_Amount(); } } public class Ebay_Transaction { public DateTime? CreatedDate { get; set; } public int QuantityPurchased { get; set; } public string TransactionID { get; set; } public Ebay_Amount TransactionPrice { get; set; } public string TransactionSiteID { get; set; } public string Platform { get; set; } public Ebay_Amount ActualShippingCost { get; set; } public Ebay_Amount ActualHandlingCost { get; set; } public Ebay_Buyer Buyer { get; set; } public Ebay_Transaction_ShippingDetails ShippingDetails { get; set; } public Ebay_Transaction_Item Item { get; set; } public Ebay_Transaction_Status Status { get; set; } public Ebay_Transaction_Variation Variation { get; set; } public List VariationSpecifics { get; set; } public Ebay_Transaction_Taxes Taxes { get; set; } public string OrderLineItemID { get; set; } public Ebay_Transaction() { TransactionPrice = new Ebay_Amount(); ActualShippingCost = new Ebay_Amount(); ActualHandlingCost = new Ebay_Amount(); Buyer = new Ebay_Buyer(); ShippingDetails = new Ebay_Transaction_ShippingDetails(); Item = new Ebay_Transaction_Item(); Status = new Ebay_Transaction_Status(); Variation = new Ebay_Transaction_Variation(); VariationSpecifics = new List(); Taxes = new Ebay_Transaction_Taxes(); } public void SetCreatedDate(string dt) { if (string.IsNullOrEmpty(dt) == true) return; dt = dt.Replace("T", " "); dt = dt.Remove(dt.Length - 1); this.CreatedDate = Convert.ToDateTime(dt); } } public class Ebay_Buyer { public string Email { get; set; } public string UserFirstName { get; set; } public string UserLastName { get; set; } } public class Ebay_Transaction_ShippingDetails { public int SellingManagerSalesRecordNumber { get; set; } public Ebay_Transaction_ShipmentTrackingDetails ShipmentTrackingDetails { get; set; } public Ebay_Transaction_ShippingDetails() { ShipmentTrackingDetails = new Ebay_Transaction_ShipmentTrackingDetails(); } } public class Ebay_Transaction_ShipmentTrackingDetails { public string ShippingCarrierUsed { get; set; } public string ShipmentTrackingNumber { get; set; } } public class Ebay_Transaction_Item { public string ItemID { get; set; } public string Site { get; set; } public string Title { get; set; } public string SKU { get; set; } public string ConditionID { get; set; } public string ConditionDisplayName { get; set; } } public class Ebay_Transaction_Status { public string PaymentHoldStatus { get; set; } } public class Ebay_Transaction_Variation { public string SKU { get; set; } public string VariationTitle { get; set; } public string VariationViewItemURL { get; set; } public List VariationSpecifics { get; set; } public Ebay_Transaction_Taxes Taxes { get; set; } public Ebay_Transaction_Variation() { Taxes = new Ebay_Transaction_Taxes(); VariationSpecifics = new List(); } } public class Ebay_Transaction_VariationSpecifics { public string Name { get; set; } public string Value { get; set; } } public class Ebay_Transaction_Taxes { public Ebay_Amount TotalTaxAmount { get; set; } public List TaxDetails { get; set; } public Ebay_Transaction_Taxes() { TotalTaxAmount = new Ebay_Amount(); TaxDetails = new List(); } } public class Ebay_Transaction_TaxDetails { public string Imposition { get; set; } public string TaxDescription { get; set; } public Ebay_Amount TaxAmount { get; set; } public Ebay_Amount TaxOnSubtotalAmount { get; set; } public Ebay_Amount TaxOnShippingAmount { get; set; } public Ebay_Amount TaxOnHandlingAmount { get; set; } public Ebay_Transaction_TaxDetails() { TaxAmount = new Ebay_Amount(); TaxOnSubtotalAmount = new Ebay_Amount(); TaxOnShippingAmount = new Ebay_Amount(); TaxOnHandlingAmount = new Ebay_Amount(); } } }