private async Task <HttpRequestResult> MakePostRequestAsync(IDictionary <string, string> requestParameters, TbcBankEcommerceClientOptions options) { if (requestParameters is null) { throw new ArgumentNullException(nameof(requestParameters)); } StringBuilder queryBuilder = new StringBuilder(); foreach (var requestParameter in requestParameters) { if (requestParameter.Value == null) { continue; } queryBuilder.Append($"{requestParameter.Key}={Uri.EscapeDataString(requestParameter.Value)}&"); } if (queryBuilder.Length > 1) { queryBuilder.Remove(queryBuilder.Length - 1, 1); } HttpRequestResult result = new HttpRequestResult() { RequestUrl = ServiceUrlBuilderHelper.GetMerchantHandlerUrl(options.Environment), RequestQuery = queryBuilder.ToString() }; try { using var handler = GetHttpClientHandler(options); handler.ServerCertificateCustomValidationCallback = (message, certificate, chain, sslPolicyErrors) => true; using var certificate = CreateCertificate(options); handler.ClientCertificates.Add(certificate); using var client = new HttpClient(handler); using var content = new StringContent(result.RequestQuery, Encoding.UTF8, "application/x-www-form-urlencoded"); var responseMessage = await client.PostAsync(result.RequestUrl, content); result.HttpStatsCode = responseMessage.StatusCode; result.Success = responseMessage.IsSuccessStatusCode; result.RawResponse = await responseMessage.Content.ReadAsStringAsync(); } catch (Exception ex) { result.Success = false; result.Exception = ex; } return(result); }
public OperationResult(HttpRequestResult httpResult) { if (httpResult == null) { throw new ArgumentNullException(nameof(httpResult)); } RawResponse = httpResult.RawResponse; Exception = httpResult.Exception; RequestUrl = httpResult.RequestUrl; RequestQuery = httpResult.RequestQuery; if (Exception != null) { ErrorMessage = Exception.Message; } if (RawResponse != null) { ParseRawResponseKeyValues(); } }
public ExecuteCreditTransactionResult(HttpRequestResult httpResult) : base(httpResult) { }
public ReverseTransactionResult(HttpRequestResult httpResult) : base(httpResult) { }
public RefundTransactionResult(HttpRequestResult httpResult) : base(httpResult) { }
public CheckTransactionResult(HttpRequestResult httpResult) : base(httpResult) { }
public ExecuteReoccurringTransactionResult(HttpRequestResult httpResult) : base(httpResult) { }
public ExecutePreAuthorizationResult(HttpRequestResult httpResult) : base(httpResult) { }
public RegisterTransactionResult(HttpRequestResult httpResult) : base(httpResult) { }