Example #1
0
        /// <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());
                }
            }
        }
Example #2
0
 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;
         }
     }
 }