示例#1
0
        /// <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);
        }
示例#2
0
        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;
        }
示例#4
0
        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);
        }
示例#5
0
        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;
 }