public async Task <PaymentProvidersResponse> GetPaymentProviders() { PaymentProvidersResponse paymentProvidersResponse = await this.HttpRequestClient.ExecutePaymentProvidersRequest(); return(paymentProvidersResponse); }
// List all payment provided Xente Payment API is integrated with public async Task <PaymentProvidersResponse> ExecutePaymentProvidersRequest(bool executeWithANewToken = false) { // Check if the token is present in the global variable or when executeWithANewToken is true if (this.BearerToken == null || executeWithANewToken == true) { this.BearerToken = await ExecuteBearerTokenRequest(); } try { SetRequestHeaders(); HttpResponseMessage response = await HttpClient.GetAsync($"{this.Constant.BaseUrl}/PaymentProviders/MOBILEMONEYUG/providerItems?PageSize=10&PageNumber=1"); response.EnsureSuccessStatusCode(); // Cast the response to our custome data type PaymentProvidersResponse paymentProvidersResponse = await response.Content.ReadAsAsync <PaymentProvidersResponse>(); return(paymentProvidersResponse); } catch (Exception ex) { if (ex.Message.Contains("401")) { // Execute again but with a new bearer token PaymentProvidersResponse paymentProvidersResultsWithNewToken = await ExecutePaymentProvidersRequest(true); return(paymentProvidersResultsWithNewToken); } else { throw new XenteConnectionException(ex.Message); } } }