/*
         *  This method cn be used to patch an order by passing the order id.
         */
        public async static Task <HttpResponse> PatchOrder(string orderId, bool debug = false)
        {
            var request = new OrdersPatchRequest <Object>(orderId);

            request.RequestBody(BuildPatchRequest());
            var response = await PayPalClient.client().Execute(request);

            if (debug)
            {
                var ordersGetRequest = new OrdersGetRequest(orderId);
                response = await PayPalClient.client().Execute(ordersGetRequest);

                var result = response.Result <Order>();
                Console.WriteLine("Retrieved Order Status After Patch");
                Console.WriteLine("Status: {0}", result.Status);
                Console.WriteLine("Order Id: {0}", result.Id);
                Console.WriteLine("Intent: {0}", result.Intent);
                Console.WriteLine("Links:");
                foreach (LinkDescription link in result.Links)
                {
                    Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method);
                }
                AmountWithBreakdown amount = result.PurchaseUnits[0].Amount;
                Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value);
                Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result));
            }
            return(response);
        }
예제 #2
0
        public async static Task <HttpResponse> GetOrder(string orderId)
        {
            var request  = new OrdersGetRequest(orderId);
            var response = await PayPalClient.client().Execute(request);

            return(response);
        }
예제 #3
0
        public override Task Execute(MessageData data)
        {
            var args = data.GetAs <Params>();
            OrdersGetRequest request = new OrdersGetRequest(args.OrderId);

            if (string.IsNullOrEmpty(clientId))
            {
                throw new CoflnetException("unavailable", "checkout via paypal has not yet been enabled, please contact an admin");
            }
            var client = new PayPalHttpClient(new LiveEnvironment(clientId, clientSecret));

            //3. Call PayPal to get the transaction
            PayPalHttp.HttpResponse response;
            try
            {
                response = client.Execute(request).Result;
            }
            catch (Exception e)
            {
                dev.Logger.Instance.Error(e, "payPalPayment");
                throw new CoflnetException("payment_failed", "The provided orderId has not vaid payment asociated");
            }
            //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
            var result = response.Result <Order>();

            Console.WriteLine(JSON.Stringify(result));
            Console.WriteLine("Retrieved Order Status");
            Console.WriteLine("Status: {0}", result.Status);
            Console.WriteLine("Order Id: {0}", result.Id);
            AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown;

            Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value);
            if (result.Status != "COMPLETED")
            {
                throw new CoflnetException("order_incomplete", "The order is not yet completed");
            }

            if (UsedIds.Contains(args.OrderId))
            {
                throw new CoflnetException("payment_timeout", "the provied order id was already used");
            }

            if (DateTime.Parse(result.PurchaseUnits[0].Payments.Captures[0].UpdateTime) < DateTime.Now.Subtract(TimeSpan.FromHours(1)))
            {
                throw new CoflnetException("payment_timeout", "the provied order id is too old, please contact support for manual review");
            }
            var user          = data.User;
            var days          = args.Days;
            var transactionId = result.Id;

            UserService.Instance.SavePurchase(user, days, transactionId);



            UsedIds.Add(args.OrderId);
            FileController.AppendLineAs("purchases", JSON.Stringify(result));
            return(data.Ok());
        }
예제 #4
0
        public async Task <IHttpActionResult> BuyTicket(BuyTicketBindingModel bindingModel)
        {
            var user = unitOfWork.Users.Find(u => u.Email.Equals(bindingModel.Email)).FirstOrDefault();

            if (user == null)
            {
                return(BadRequest("User with that email doesn't exist"));
            }

            DateTime currentTime   = DateTime.Now;
            var      pricelistItem = unitOfWork.Pricelists.GetPricelistItemForSelectedTypes(bindingModel.TicketType, user.PassengerType, currentTime);

            if (pricelistItem == null)
            {
                return(NotFound());
            }

            OrdersGetRequest request = new OrdersGetRequest(bindingModel.OrderId);
            var response             = await PayPalClient.client().Execute(request);

            var         result = response.Result <Order>();
            Transaction transaction;

            if (result.Status == "COMPLETED")
            {
                transaction = new Transaction()
                {
                    OrderId    = result.Id,
                    CreateTime = result.CreateTime,
                    PayerEmail = result.Payer.Email,
                    Status     = result.Status,
                    UserId     = user.Id
                };

                unitOfWork.Transactions.Add(transaction);
                unitOfWork.Complete();
            }
            else
            {
                return(BadRequest("Transaction was not validated."));
            }

            Ticket ticket = new Ticket()
            {
                TimeOfPurchase = currentTime,
                TicketInfo     = pricelistItem,
                IsCanceled     = false,
                PassengerId    = user.Id
            };

            SendTicketToEmail(ticket, transaction.PayerEmail);

            unitOfWork.Tickets.Add(ticket);
            unitOfWork.Complete();

            return(Ok());
        }
예제 #5
0
        public async Task <InvoicePaymentProvider> UpdateAmountInvoice(InvoicePaymentProvider invoicePaymentProvider, Domain.Entities.Orders.Order order)
        {
            PayPalEnvironment environment = CreateEnvironment();
            var client = new PayPalHttpClient(environment);

            var getOrderRequest = new OrdersGetRequest(invoicePaymentProvider.Transaction);

            try
            {
                var getOrderResponse = await client.Execute(getOrderRequest);

                var getOrderResult = getOrderResponse.Result <PaypalOrder>();
                var payment        = new OrderRequest()
                {
                    CheckoutPaymentIntent = "CAPTURE",
                    PurchaseUnits         = new List <PurchaseUnitRequest>()
                    {
                        new PurchaseUnitRequest()
                        {
                            CustomId            = getOrderResult.PurchaseUnits[0].CustomId,
                            Description         = getOrderResult.PurchaseUnits[0].Description,
                            AmountWithBreakdown = new AmountWithBreakdown()
                            {
                                CurrencyCode = Currency.CurrencyValue.USD.ToString(),
                                Value        = Convert.ToInt32(order.TotalAmount).ToString()
                            }
                        }
                    },
                    ApplicationContext = CreateApplicationContext()
                };

                var request = new OrdersCreateRequest();
                request.Prefer("return=representation");
                request.RequestBody(payment);
                var response = await client.Execute(request);

                var result = response.Result <PaypalOrder>();
                var uri    = new Uri(result.Links.Single(l => l.Rel == "approve").Href);

                await CancelInvoice(invoicePaymentProvider);

                invoicePaymentProvider.Link        = uri;
                invoicePaymentProvider.Transaction = result.Id;

                return(invoicePaymentProvider);
            }
            catch (HttpException httpException)
            {
                var debugId = httpException.Headers.GetValues("PayPal-Debug-Id").FirstOrDefault();
                throw httpException;
            }
        }
예제 #6
0
        public async Task <Result <Order> > GetOrder(string orderId, bool debug = false)
        {
            var request  = new OrdersGetRequest(orderId);
            var response = await _payPalClient.Client().Execute(request);

            var result = response.Result <Order>();

            //todo: Save things to DB

            return(result != null ?
                   Result <Order> .Ok(result) :
                   Result <Order> .Error($"There are no payments with given Id."));
        }
        public static HttpResponse GetOrder(string orderId, int userId, bool debug = true)
        {
            OrdersGetRequest request = new OrdersGetRequest(orderId);
            //3. Call PayPal to get the transaction
            var response = Task.Run(() => PayPalClient.client().Execute(request)).Result;
            //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
            var    result = response.Result <Order>();
            String value  = result.PurchaseUnits[0].AmountWithBreakdown.Value;

            /*if (result.Status != "COMPLETE") {
             *  return response;
             * }*/

            Transaction transaction = new Transaction();

            transaction.Status = result.Status;
            transaction.Amount = value;
            transaction.UserId = userId;
            ApplicationContext db = new ApplicationContext();

            User user = db.Users.SingleOrDefault(u => u.Id == userId);

            if (String.Compare(value, SilverPrice) == 0)
            {
                user.TokenAmount   += Silver;
                transaction.Package = "Silver";
            }

            if (String.Compare(value, GoldPrice) == 0)
            {
                user.TokenAmount   += Gold;
                transaction.Package = "Gold";
            }

            if (String.Compare(value, PlatinumPrice) == 0)
            {
                user.TokenAmount   += Platinum;
                transaction.Package = "Platinum";
            }

            transaction.Paid = float.Parse(transaction.Amount);

            db.Entry(user).State = EntityState.Modified;
            db.Transactions.Add(transaction);
            db.SaveChanges();

            String amount = result.PurchaseUnits[0].AmountWithBreakdown.Value;

            return(response);
        }
예제 #8
0
        public async Task <HttpResponse> GetTransaction(string OrderId, bool debug = false)
        {
            //string orderId = "8TH80554NC7396247";
            string orderId = "23139793XR804084D";

            try
            {
                //RefundsGetRequest
                //CapturesGetRequest

                var request = new OrdersCaptureRequest(orderId);
                request.RequestBody(new OrderActionRequest());
                PayPalEnvironment payPalEnvironment = new SandboxEnvironment("Af8jLh10kVlYkx4lunz6GSduOt92LyS_hRCOjzRZaU1SZrr1Eb7xYXBjLn-ue6SqiVlsTCEPPlMmL4bI", "EKQBNJEbuBx-yIx0vdtFTiptyfnnyjQVYwhPAmiuKe19T3Viko-B8E-wYrfQuvGdVCOJ97zH9-arreb4");

                var response = await new PayPalHttpClient(payPalEnvironment).Execute(request);
                var result   = response.Result <Order>();

                foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits)
                {
                    foreach (PayPalCheckoutSdk.Orders.Capture capture in purchaseUnit.Payments.Captures)
                    {
                        //captureId = capture.Id;
                    }
                }

                Console.WriteLine("Retrieved Order Status");
                //result.Payer.A
                Console.WriteLine("Status: {0}", result.Status);
                Console.WriteLine("Order Id: {0}", result.Id);
                //Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent);
                Console.WriteLine("Links:");
                //foreach (LinkDescription link in result.Links)
                //{
                //    Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method);
                //}
                // AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown;
                // Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value);
                //   Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result));
                return(response);
            }
            catch (Exception e)
            {
                OrdersGetRequest request = new OrdersGetRequest(orderId);

                PayPalEnvironment payPalEnvironment = new SandboxEnvironment("Af8jLh10kVlYkx4lunz6GSduOt92LyS_hRCOjzRZaU1SZrr1Eb7xYXBjLn-ue6SqiVlsTCEPPlMmL4bI", "EKQBNJEbuBx-yIx0vdtFTiptyfnnyjQVYwhPAmiuKe19T3Viko-B8E-wYrfQuvGdVCOJ97zH9-arreb4");

                return(await new PayPalHttpClient(payPalEnvironment).Execute(request));
            }
        }
예제 #9
0
        public async void TestOrdersGetRequest()
        {
            var response = await OrdersCreateTest.CreateOrder();

            Order createdOrder = response.Result <Order>();

            OrdersGetRequest request = new OrdersGetRequest(createdOrder.Id);

            response = await TestHarness.client().Execute(request);

            Assert.Equal(200, (int)response.StatusCode);
            Order retrievedOrder = response.Result <Order>();

            Assert.NotNull(retrievedOrder);
            Assert.Equal(retrievedOrder.Id, createdOrder.Id);
            Assert.NotNull(retrievedOrder.PurchaseUnits);
            Assert.Equal(retrievedOrder.PurchaseUnits.Count, createdOrder.PurchaseUnits.Count);

            for (int count = 0; count < retrievedOrder.PurchaseUnits.Count; count++)
            {
                PurchaseUnit retrievedOrderPurchaseUnit = retrievedOrder.PurchaseUnits[count];
                PurchaseUnit createdOrderPurchaseUnit   = createdOrder.PurchaseUnits[count];
                Assert.Equal(retrievedOrderPurchaseUnit.ReferenceId, createdOrderPurchaseUnit.ReferenceId);
                Assert.Equal(retrievedOrderPurchaseUnit.Amount.CurrencyCode, createdOrderPurchaseUnit.Amount.CurrencyCode);
                Assert.Equal(retrievedOrderPurchaseUnit.Amount.Value, createdOrderPurchaseUnit.Amount.Value);
            }

            Assert.NotNull(retrievedOrder.CreateTime);

            Assert.NotNull(createdOrder.Links);
            bool foundApproveURL = false;

            foreach (var linkDescription in createdOrder.Links)
            {
                if ("approve".Equals(linkDescription.Rel))
                {
                    foundApproveURL = true;
                    Assert.NotNull(linkDescription.Href);
                    Assert.Equal("GET", linkDescription.Method);
                    Console.WriteLine(linkDescription.Href);
                }
            }

            Console.WriteLine(createdOrder.Id);
            Assert.True(foundApproveURL);
            Assert.Equal("CREATED", createdOrder.Status);
        }
예제 #10
0
        public async Task <HttpResponse> GetOrder(bool debug = false)
        {
            //string orderId = "8TH80554NC7396247";
            //string orderId = "3WW64787D42227157";
            string orderId = "95868714B0010890H";

            try
            {
                //RefundsGetRequest
                //CapturesGetRequest

                OrdersGetRequest request = new OrdersGetRequest(orderId);

                PayPalEnvironment payPalEnvironment = new SandboxEnvironment("Af8jLh10kVlYkx4lunz6GSduOt92LyS_hRCOjzRZaU1SZrr1Eb7xYXBjLn-ue6SqiVlsTCEPPlMmL4bI", "EKQBNJEbuBx-yIx0vdtFTiptyfnnyjQVYwhPAmiuKe19T3Viko-B8E-wYrfQuvGdVCOJ97zH9-arreb4");

                var response = await new PayPalHttpClient(payPalEnvironment).Execute(request);
                var result   = response.Result <Order>();
                Console.WriteLine("Retrieved Order Status");
                var shippingCharge = result.PurchaseUnits.Select(s => s.AmountWithBreakdown).Sum(a => Convert.ToDecimal(a.AmountBreakdown.Shipping.Value));
                var tax            = result.PurchaseUnits.Select(s => s.AmountWithBreakdown).Sum(a => Convert.ToDecimal(a.AmountBreakdown.TaxTotal.Value));
                var total          = result.PurchaseUnits.Select(s => s.AmountWithBreakdown).Sum(a => Convert.ToDecimal(a.AmountBreakdown.TaxTotal.Value));
                foreach (PurchaseUnit purchaseUnit in result.PurchaseUnits)
                {
                }
                //result.Payer.A
                Console.WriteLine("Status: {0}", result.Status);
                Console.WriteLine("Order Id: {0}", result.Id);
                //Console.WriteLine("Intent: {0}", result.CheckoutPaymentIntent);
                Console.WriteLine("Links:");
                //foreach (LinkDescription link in result.Links)
                //{
                //    Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method);
                //}
                // AmountWithBreakdown amount = result.PurchaseUnits[0].AmountWithBreakdown;
                // Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value);
                //   Console.WriteLine("Response JSON: \n {0}", PayPalClient.ObjectToJSONString(result));
                return(response);
            }
            catch (Exception e)
            {
                OrdersGetRequest request = new OrdersGetRequest(orderId);

                PayPalEnvironment payPalEnvironment = new SandboxEnvironment("Af8jLh10kVlYkx4lunz6GSduOt92LyS_hRCOjzRZaU1SZrr1Eb7xYXBjLn-ue6SqiVlsTCEPPlMmL4bI", "EKQBNJEbuBx-yIx0vdtFTiptyfnnyjQVYwhPAmiuKe19T3Viko-B8E-wYrfQuvGdVCOJ97zH9-arreb4");

                return(await new PayPalHttpClient(payPalEnvironment).Execute(request));
            }
        }
        public async Task <Order> CaptureOrder(string approvedOrderId)
        {
            // Construct a request object and set desired parameters
            // Replace ORDER-ID with the approved order id from create order
            var request = new OrdersCaptureRequest(approvedOrderId);

            request.RequestBody(new OrderActionRequest());
            var response = await Client().Execute(request);

            var getRequest = new OrdersGetRequest(approvedOrderId);

            response = await Client().Execute(getRequest);

            var result = response.Result <Order>();

            return(result);
        }
예제 #12
0
        //2. Set up your server to receive a call from the client

        /*
         * You can use this method to retrieve an order by passing the order ID.
         */
        public async static Task <HttpResponse> GetOrder(string orderID, string sessionId, bool debug = false)
        {
            Console.WriteLine("OrderID: " + orderID);
            Console.WriteLine("SessionID: " + sessionId);


            OrdersGetRequest request = new OrdersGetRequest(orderID);
            //3. Call PayPal to get the transaction
            var response = await PayPalClient.client().Execute(request);

            //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
            var result = response.Result <Order>();

            if (result == null)
            {
                Console.WriteLine("Result is null.");
            }
            Console.WriteLine("Customer Name: " + result.Payer.Name.GivenName);
            using (var db = new RareShoesContext())
            {
                var order = db.Order.Where(a => a.SessionId == sessionId).FirstOrDefault();
                if (order == null)
                {
                    Console.WriteLine("Order is null");
                }
                else
                {
                    Console.WriteLine("OrderID: " + order.OrderId);
                }
                order.CustomerName    = result.Payer.Name.FullName;
                order.EmailAddress    = result.Payer.EmailAddress;
                order.TransactionId   = result.Id;
                order.OrderStatusId   = 3;
                order.DateOfOrder     = DateTime.Now;
                order.DeliveryAddress = result.PurchaseUnits[0].Shipping.AddressPortable.AddressLine1 +
                                        result.Payer.AddressPortable.AddressLine2 + ", " + result.Payer.AddressPortable.AdminArea2 + ", " +
                                        result.Payer.AddressPortable.AdminArea1;
                Console.WriteLine("Deliver address: " + order.DeliveryAddress);
                db.Entry(order).State = Microsoft.EntityFrameworkCore.EntityState.Modified;
                db.SaveChanges();
            }

            return(response);
        }
예제 #13
0
        public async Task <IEnumerable <IOrderState> > GetAsync(ICriterion filter, IList <string> orders = null, int firstResult = 0, int maxResults = int.MaxValue, IList <string> fields = null)
        {
            IEnumerable <IOrderState> states = null;
            var q = new OrdersGetQuery();

            q.FirstResult = firstResult;
            q.MaxResults  = maxResults;
            q.Sort        = OrderProxyUtils.GetOrdersQueryValueString(orders);
            q.Fields      = OrderProxyUtils.GetReturnedFieldsQueryValueString(fields, QueryFieldValueSeparator);
            q.Filter      = OrderProxyUtils.GetFilterQueryValueString(filter);
            var req = new OrdersGetRequest();

            req.Query = q;
            var resp = await _ramlClient.Orders.Get(req);

            OrderProxyUtils.ThrowOnHttpResponseError(resp);
            states = (resp.Content == null) ? null : resp.Content.Select(e => e.ToOrderState());
            return(states);
        }
예제 #14
0
        public ActionResult About()
        {
            var clientId = "";
            var secret   = "";

            //Creating a sandbox environment
            PayPalEnvironment environment = new SandboxEnvironment(clientId, secret);

            // Creating a client for the environment
            PayPalHttpClient client = new PayPalHttpClient(environment);
            var request             = new OrdersGetRequest("");
            var task       = client.Execute(request);
            var response   = task.Result;
            var statusCode = response.StatusCode;

            ViewBag.Message = response.StatusCode.ToString();

            return(View(statusCode));
        }
예제 #15
0
        public async Task <IActionResult> Complete([FromBody] PayPalTransactionCompleteInput input)
        {
            _logger.LogInformation(input.ToString());
            try
            {
                OrdersGetRequest request = new OrdersGetRequest(input.OrderId);
                // Call PayPal to get the transaction
                var response = await _paypalClient.Execute(request);

                // Save the transaction in your database. Implement logic to save transaction to your database for future reference.
                var result     = response.Result <Order>();
                var resultJson = JsonConvert.SerializeObject(result);
                _logger.LogInformation("支付结果:" + resultJson);
                return(Json(result));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "支付失败");
                return(BadRequest());
            }
        }
예제 #16
0
        public async Task <String> GetOrder(string id, bool debug = false)
        {
            OrdersGetRequest request = new OrdersGetRequest(id);
            //3. Call PayPal to get the transaction
            var response = await PayPalClient.client().Execute(request);

            //4. Save the transaction in your database. Implement logic to save transaction to your database for future reference.
            var result = response.Result <Order>();

            Console.WriteLine("Retrieved Order Status");
            Console.WriteLine("Status: {0}", result.Status);
            Console.WriteLine("Order Id: {0}", result.Id);
            Console.WriteLine("Intent: {0}", result.Intent);
            Console.WriteLine("Links:");
            foreach (LinkDescription link in result.Links)
            {
                Console.WriteLine("\t{0}: {1}\tCall Type: {2}", link.Rel, link.Href, link.Method);
            }
            AmountWithBreakdown amount = result.PurchaseUnits[0].Amount;

            Console.WriteLine("Total Amount: {0} {1}", amount.CurrencyCode, amount.Value);

            return(PayPalClient.ObjectToJSONString(response.Result <Order>()));
        }
예제 #17
0
        /// <summary>
        /// 获取一号店指定时间区间的订单
        /// </summary>
        /// <param name="param">查询参数</param>
        /// <param name="auth">授权参数</param>
        /// <returns>一号店订单列表</returns>
        /// <remarks>2017-08-23 黄杰 创建</remarks>
        public Result <List <UpGradeOrder> > GetOrderList(OrderParameters param, AuthorizationParameters auth)
        {
            var dealerInfo = new HytOrderDealerInfo()
            {
                DealerSysNo     = 1565,
                DealerMallSysNo = 10,
                HytPayStatus    = 20,
                IsSelfSupport   = 1,
            };

            var result = new Result <List <UpGradeOrder> > {
                Status = true, Message = "", Data = null, StatusCode = 0
            };
            var orderList = new List <UpGradeOrder>();
            var _param    = new Dictionary <string, string>();

            var req = new OrdersGetRequest()
            {
                /**订单状态(逗号分隔):
                 *  ORDER_WAIT_PAY:已下单(货款未全收)、
                 *  ORDER_PAYED:已下单(货款已收)、
                 *  ORDER_WAIT_SEND:可以发货(已送仓库)、
                 *  ORDER_ON_SENDING:已出库(货在途)、
                 *  ORDER_RECEIVED:货物用户已收到、
                 *  ORDER_FINISH:订单完成、
                 *  ORDER_CANCEL:订单取消 */
                OrderStatusList = "ORDER_WAIT_SEND",                               //可以发货(已送仓库)
                DateType        = 2,                                               //日期类型(1:订单生成日期,2:订单付款日期,3:订单发货日期,4:订单收货日期,5:订单更新日期)
                StartTime       = param.StartDate.ToString("yyyy-MM-dd HH:mm:ss"), //查询开始时间 格式2011-12-12 20:10:10
                EndTime         = param.EndDate.ToString("yyyy-MM-dd HH:mm:ss"),   //查询结束时间(时间差为15天)
                CurPage         = 1,                                               //当前页数
                PageRows        = 80                                               //每页显示记录数,默认50,最大100
            };

            var response = client.Execute(req, config.SessionKey);

            //循环获得订单编号,并根据订单编号获取订单详情
            while (true)
            {
                var trades = JObject.Parse(response.ToString());

                int totals = int.Parse(trades["response"]["totalCount"].ToString());

                int totalPages = totals / param.PageSize;
                if (totals % param.PageSize != 0)
                {
                    totalPages++;
                }

                var tradess = trades["response"]["orderList"]["order"];

                bool has_nexts = param.PageIndex < totalPages;

                //trade = JObject.Parse(response.ToString());
                foreach (var i in tradess)
                {
                    //根据获取的订单号取得订单详情
                    var reqs = new OrdersDetailGetRequest()
                    {
                        OrderCodeList = i["orderId"].ToString()
                    };
                    var responseData = client.Execute(reqs, config.SessionKey);

                    #region 把订单详情和MAP绑定
                    while (true)
                    {
                        var trade = JObject.Parse(responseData.ToString());

                        int total = int.Parse(trade["response"]["totalCount"].ToString());

                        int totalPage = total / param.PageSize;
                        if (total % param.PageSize != 0)
                        {
                            totalPage++;
                        }

                        var trades1 = trade["response"]["orderInfoList"]["orderInfo"];

                        bool has_next = param.PageIndex < totalPage;

                        //trade = JObject.Parse(response.ToString());
                        foreach (var j in trades1)
                        {
                            var order = new UpGradeOrder();

                            Map(j, order);
                            order.HytOrderDealer = dealerInfo;
                            //// 支付方式(一号店无支付方式选项)
                            //order.HytOrderDealer.HytPayType = YihaodianToPayTypeSysNo(i["payType"].ToString());
                            orderList.Add(order);
                        }

                        if (has_next)
                        {
                            param.PageIndex++;
                            req.CurPage = param.PageIndex;
                            response    = client.Execute(req, config.SessionKey);
                        }
                        else
                        {
                            break;
                        }
                    }
                    #endregion
                }

                if (has_nexts)
                {
                    param.PageIndex++;
                    req.CurPage = param.PageIndex;
                    response    = client.Execute(req, config.SessionKey);
                }
                else
                {
                    break;
                }
            }

            result.Data = orderList;

            return(result);
        }