/// <summary> /// Create a payment request. /// </summary> /// <returns>An object of type PaymentRequest.</returns> /// <exception cref = "ArgumentNullException"> paymentRequest was null; amount and/or purpose was null; </exception> /// <exception cref = "BadRequestException"> Can happen due to a number of reasons. </exception> /// <exception cref = "UnauthorizedAccessException"> Raised due to invalid credentials. </exception> public async Task<PaymentRequest> CreatePaymentRequest(PaymentRequest paymentRequest) { if (paymentRequest == null) throw new ArgumentNullException("paymentRequest cannot be null"); if (paymentRequest.amount == null) throw new ArgumentNullException("paymentRequest.amount"); if (paymentRequest.purpose == null) throw new ArgumentNullException("paymentRequest.purpose"); StringContent jsonContent = new StringContent(JsonConvert.SerializeObject(paymentRequest, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }), Encoding.UTF8, "application/json"); using (httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri(Endpoints.baseURL); httpClient.DefaultRequestHeaders.Add("X-API-KEY", this.api_key); httpClient.DefaultRequestHeaders.Add("X-AUTH-TOKEN", this.auth_token); var response = await httpClient.PostAsync(Endpoints.paymentRequests, jsonContent); string content = response.Content.ReadAsStringAsync().Result; if (response.StatusCode == HttpStatusCode.Created) { return JsonConvert.DeserializeObject<PaymentRequestResponse>(content).payment_request; } else if (response.StatusCode == HttpStatusCode.Unauthorized) { throw new UnauthorizedAccessException("Please check the apiKey and authToken."); } else { Dictionary<string, dynamic> values = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(content); throw new BadRequestException(values["message"].ToString()); } } }
public PaymentRequestResponse CreatePaymentRequest(PaymentRequest paymentRequest) { HttpWebRequest httpReq = (HttpWebRequest)WebRequest.Create(baseURL + EndPoint_PaymentRequest); httpReq.Headers = Headers; httpReq.ContentType = "application/json"; httpReq.Method = "POST"; String json = JsonConvert.SerializeObject(paymentRequest, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }); using (var writer = new StreamWriter(httpReq.GetRequestStream())) { writer.Write(json); writer.Flush(); writer.Close(); } using (HttpWebResponse response = (HttpWebResponse)httpReq.GetResponse()) { using (StreamReader reader = new StreamReader(response.GetResponseStream())) { PaymentRequestResponse prr = JsonConvert.DeserializeObject<PaymentRequestResponse>(reader.ReadToEnd()); reader.Close(); response.Close(); return prr; } } }