Пример #1
0
        static void SubmitAck(AckOrders order)
        {
            RestClient   restClient  = new RestClient(live_url_base);
            IRestRequest restRequest = new RestRequest(ack_order_resource, Method.POST);

            //restRequest.AddHeader("Accept", content_json);
            //adding token on the client side
            restRequest.AddHeader("x-amz-access-token", "your_access_token");

            //add the body
            string json = JsonConvert.SerializeObject(order, Formatting.Indented);

            restRequest.AddParameter("orderAcknowledgements", json, content_json, ParameterType.RequestBody);

            restRequest = signatureHelper.SignRequest(restRequest, restClient, content_json);

            try
            {
                var result = restClient.Execute(restRequest);

                System.IO.File.WriteAllText("C:\\Amazon1P\\ack\\" + Guid.NewGuid() + ".txt", result.Content);//keep the orignal message

                if (result.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var payload = JsonConvert.DeserializeObject <POSTResponse>(result.Content);
                }
                else if (result.StatusCode == System.Net.HttpStatusCode.Accepted)
                {
                    var payload = JsonConvert.DeserializeObject <POSTResponse>(result.Content);
                }
                else if (result.StatusCode == System.Net.HttpStatusCode.Forbidden)
                {
                    //token expired - get a new one
                    string new_toke = signatureHelper.GetToken();

                    //AppCred.Default.AccessToken = new_toke;
                    //AppCred.Default.Save();

                    //saved new token
                    //run again

                    SubmitAck(order);
                }
                else
                {
                    //problem
                    //Status: 400 - Request has missing or invalid parameters and cannot be parsed.
                    //Status: 403 - 403 can be caused for reasons like Access Denied, Unauthorized, Expired Token, Invalid Signature or Resource Not Found.
                    //Status: 404 - The resource specified does not exist.
                    //Status: 415 - The entity of the request is in a format not supported by the requested resource.
                    //Status: 429 - The frequency of requests was greater than allowed.
                    //Status: 500 - Encountered an unexpected condition which prevented the server from fulfilling the request.
                    //Status: 503 - Temporary overloading or maintenance of the server.
                }
            }
            catch (Exception e)
            {
                //save error
            }
        }
Пример #2
0
        static AckOrders BuildAck(string code, string description)
        {
            string amazon_po = "get_amazon_po_from_your_db";

            var ackRequest = new AckOrders();
            var ackList    = new List <OrderAcknowledgement>();

            var ack = new OrderAcknowledgement();

            ack.AcknowledgementDate = DateTime.Now.ToString("o");

            var ackStatus = new AcknowledgementStatus();

            ackStatus.Code        = code;
            ackStatus.Description = description;

            ack.AcknowledgementStatus = ackStatus;

            ack.PurchaseOrderNumber = amazon_po;

            ack.SellingParty = new Ack.SellingParty {
                PartyId = "your_selling_id"
            };                                                                      //SellingParty and ShipFromParty are other models too
            ack.ShipFromParty = new Ack.ShipFromParty {
                PartyId = "your_ship_from_id"
            };

            ack.VendorOrderNumber = "your_system_order_number";

            var items = new List <ItemAcknowledgements>();

            var i = new ItemAcknowledgements();

            i.AcknowledgedQuantity = new AcknowledgedQuantity {
                Amount = 2, UnitOfMeasure = "Each"
            };

            i.BuyerProductIdentifier = "get_item_id_from_amazon_order";

            i.ItemSequenceNumber = "1";//amazon order should have this data

            i.VendorProductIdentifier = "your_seller_sku";

            items.Add(i);

            ack.Items = items;

            ackList.Add(ack);

            ackRequest.OrderAcknowledgements = ackList;

            return(ackRequest);
        }