/// <summary> /// 下订单 /// <para> /// 详细说明请查看丰桥API说明<seealso cref="https://qiao.sf-express.com/pages/developDoc/index.html?level2=460077"/> /// </para> /// </summary> /// <param name="expressOrder">快递订单对象</param> /// <param name="saveRequestXmlAction">落地请求报文的委托</param> /// <param name="saveResponseXmlAction">落地响应报文的委托</param> /// <returns></returns> public async Task <ExpressOrderReceiptResult> AddOrderAsync(ExpressOrder expressOrder, Action <string> saveRequestXmlAction = null, Action <string> saveResponseXmlAction = null) { var request = new Request <OrderRequestBody>(new OrderRequestBody(expressOrder), options.ClientCode); string xmlContent = request.ToXml(); saveRequestXmlAction?.Invoke(xmlContent); var responseStr = await httpClient.PostAsync(xmlContent, BuidVerifyCode(xmlContent)); saveResponseXmlAction?.Invoke(responseStr); if (responseStr.IsNullOrWhiteSpace()) { return(null); } Response <OrderResponseBody> orderResponse = new Response <OrderResponseBody>() { Body = new OrderResponseBody() }; orderResponse.Fill(responseStr.ToXmlDocument()); if (orderResponse.Error != null) { throw SFExpressException.ThrowException(orderResponse.Error); } return(orderResponse.Body.Result); }
public static ExpressOrder CreateExpressOrder(int ID, double fee) { ExpressOrder expressOrder = new ExpressOrder(); expressOrder.Id = ID; expressOrder.Fee = fee; return(expressOrder); }
protected void btnSubmit_Click(object sender, EventArgs e) { #region 生成包裹 var product = new List<ExpressProduct>(); product.Add(new ExpressProduct { CustomsTitleCN = "怀表", CustomsTitleEN = "POCKET WATCH", Quantity = 1, SKU = "WP083", StorageNo = "test", Weight = 100, DeclareValue = Convert.ToDecimal(5.67), }); var packageList = new List<ExpressPackage>(); packageList.Add(new ExpressPackage { Custom = "OR201112230076", ShipToAddress = new ShipToAddress { Contact= "nicolas courtais", Street1= "37 rue general ferrié", City= "grenoble", Province= "Rhône-Alpes", Country = "France", PostCode = "38100", }, Packing = new Packing { Height = 1, Length = 1, Width = 1, }, Remark = "备注信息", Status = OrderExpressState.Initial, TrackCode = "", Weight = 500, ProductList = product.ToArray(), }); var orderDetail = new ExpressOrder { IsTracking = false, Location = "GZ", Remark = "测试订单", PackageList = packageList.ToArray(), PickUpAddress = new PickUpAddress { Country = "United States", Street1 = "1712 Jones Street", Contact = "Curtis Wilson", Province = "United States", District = "United States", PostCode = "77511", City = "Alvin", Company = "ABC", }, }; #endregion var clint = new CK1SoapClient(); UserKeyAndToken ukt = new UserKeyAndToken(); var request = new ExpressAddOrderNewRequest { UserKey = ukt.getUserKey(), Token = ukt.getToken(), Submit = false, OrderDetail = orderDetail, ExpressTypeNew = "HTM", MessageID = "SampleCallId" }; ExpressAddOrderResponse response = clint.ExpressAddOrderNew(request); lblAck.Text = response.Ack.ToString(); lblInvocationID.Text = response.InvocationID; lblMessage.Text = response.Message; lblOrderSign.Text = response.OrderSign; pnlResponse.Visible = true; pnlRequest.Visible = false; }
public ShipOrder AddOutboundOrder(DispatchRequest dispatchrequest, PayPalTransaction paypaltransaction) { #region 生成包裹 var product = new List <ExpressProduct>(); foreach (var item in paypaltransaction.PayPalTransactionPaymentItems) { product.Add(new ExpressProduct { CustomsTitleCN = "怀表", CustomsTitleEN = "POCKET WATCH", Quantity = Convert.ToInt32(item.PaymentItemQuantity), SKU = item.Association.Product.Sku, Weight = item.Association.Product.Weight, DeclareValue = dispatchrequest.goodsDeclareWorth / paypaltransaction.PayPalTransactionPaymentItems.Count }); } var packageList = new List <ExpressPackage>(); packageList.Add(new ExpressPackage { Custom = dispatchrequest.Custom, ShipToAddress = new ShipToAddress { Contact = dispatchrequest.ShiptoName, Street1 = dispatchrequest.ShipToStreet, Street2 = dispatchrequest.ShipToStreet2, City = dispatchrequest.ShiptoCity, Province = dispatchrequest.ShipToState, Country = dispatchrequest.ShipToCountryName, PostCode = dispatchrequest.ShipToZip, }, Packing = new Evisou.Ims.Contract.chukou1.Packing { Height = dispatchrequest.Height, Length = dispatchrequest.Length, Width = dispatchrequest.Width, }, Remark = "备注信息", Status = OrderExpressState.Initial, TrackCode = "", Weight = dispatchrequest.goodsWeight, ProductList = product.ToArray(), }); var orderDetail = new ExpressOrder { IsTracking = false, Location = "GZ", Remark = "测试订单", PackageList = packageList.ToArray(), }; #endregion ShipOrder order = new ShipOrder(); var clint = new CK1(); var request = new ExpressAddOrderNewRequest { UserKey = CK1Config.getUserKey(), Token = CK1Config.getToken(), Submit = false, OrderDetail = orderDetail, ExpressTypeNew = dispatchrequest.Express, }; ExpressAddOrderResponse response = clint.ExpressAddOrderNew(request); try { order = new ShipOrder { Message = response.Message, OrderSign = response.OrderSign }; } catch (Exception ex) { throw ex.InnerException; } return(order); }
protected void btnSubmit_Click(object sender, EventArgs e) { #region 生成包裹 var product = new List <ExpressProduct>(); product.Add(new ExpressProduct { CustomsTitleCN = "怀表", CustomsTitleEN = "POCKET WATCH", Quantity = 1, SKU = "WP083", StorageNo = "test", Weight = 100, DeclareValue = Convert.ToDecimal(5.67), }); var packageList = new List <ExpressPackage>(); packageList.Add(new ExpressPackage { Custom = "OR201112230076", ShipToAddress = new ShipToAddress { Contact = "nicolas courtais", Street1 = "37 rue general ferrié", City = "grenoble", Province = "Rhône-Alpes", Country = "France", PostCode = "38100", }, Packing = new Packing { Height = 1, Length = 1, Width = 1, }, Remark = "备注信息", Status = OrderExpressState.Initial, TrackCode = "", Weight = 500, ProductList = product.ToArray(), }); var orderDetail = new ExpressOrder { IsTracking = false, Location = "GZ", Remark = "测试订单", PackageList = packageList.ToArray(), PickUpAddress = new PickUpAddress { Country = "United States", Street1 = "1712 Jones Street", Contact = "Curtis Wilson", Province = "United States", District = "United States", PostCode = "77511", City = "Alvin", Company = "ABC", }, }; #endregion var clint = new CK1SoapClient(); UserKeyAndToken ukt = new UserKeyAndToken(); var request = new ExpressAddOrderNewRequest { UserKey = ukt.getUserKey(), Token = ukt.getToken(), Submit = false, OrderDetail = orderDetail, ExpressTypeNew = "HTM", MessageID = "SampleCallId" }; ExpressAddOrderResponse response = clint.ExpressAddOrderNew(request); lblAck.Text = response.Ack.ToString(); lblInvocationID.Text = response.InvocationID; lblMessage.Text = response.Message; lblOrderSign.Text = response.OrderSign; pnlResponse.Visible = true; pnlRequest.Visible = false; }
public static ExpressOrder CreateExpressOrder(int ID, double fee) { ExpressOrder expressOrder = new ExpressOrder(); expressOrder.Id = ID; expressOrder.Fee = fee; return expressOrder; }
public OrderRequestBody(ExpressOrder expressOrder) { Data = expressOrder; }