Hello, i'm trying to crate new product, plan and subscription using paypal REST API. I'm using c# code in .net. Everything works find but the response is with status: 200 and it means OK but in the documentation i see that i have to receive a response with status: 201 CREATED. Also in my response there is not info about the created product. I'm not sure if i'm missing somethings because if the product is created i have to receive back product's information. This is the code i use:
- public void CreateProduct()
- {
- try
- {
- string URL = "https://api.sandbox.paypal.com/v1/catalogs/products";
- string urlParameters = "?name=testName";
- // using System.Net;
- ServicePointManager.Expect100Continue = true;
- ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
- // Use SecurityProtocolType.Ssl3 if needed for compatibility reasons
- HttpClient client = new HttpClient();
- client.BaseAddress = new Uri(URL);
- client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "Access-Token-Is-Here-I-Remove-It-For-Security-Purpose");
- client.DefaultRequestHeaders.Add("PayPal-Request-Id", "ERRCAT001");
- client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
- // List data response.
- HttpResponseMessage response = client.GetAsync(urlParameters).Result; // Blocking call! Program will wait here until a response is received or a timeout occurs.
- if (response.IsSuccessStatusCode)
- {
- // Parse the response body.
- //var dataObjects = response.Content.ReadAsAsync
>().Result; //Make sure to add a reference to System.Net.Http.Formatting.dll - //foreach (var d in dataObjects)
- //{
- // Console.WriteLine("{0}", d.Name);
- //}
- }
- else
- {
- Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
- }
- //Make any other calls using HttpClient here.
- //Dispose once all HttpClient calls are complete. This is not necessary if the containing object will be disposed of; for example in this case the HttpClient instance will be disposed automatically when the application terminates so the following call is superfluous.
- client.Dispose();
- }
- catch (Exception err)
- {
- string error = err.Message;
- }
- }
Replies
Know the answer? Post it — somebody with the same question will find it here.