public IActionResult RecurringInitialConfirm(string id, string resourcePath) { PayOnClient client = new PayOnClient(Settings.EntityIdThreeDSecure, Settings.UserId, Settings.Password, Settings.BaseUrl); PaymentViewModel model = new PaymentViewModel { Id = id }; try { PaymentStatusResponse paymentStatus = client.RequestPaymentStatus(id); model.Status = $"{Enum.GetName(typeof(ResultStatus), paymentStatus.Result.GetResultStatus())}. Result code: {paymentStatus.Result.Code}. Result Description: {paymentStatus.Result.Description}"; model.RegistrationId = CachedRegistrationId; model.Amount = "234.56"; model.Currency = "ZAR"; model.PaymentBrand = paymentStatus.PaymentBrand; return(View(model)); } catch (Exception ex) { _logger.LogError("Unable to start 3D Secure Transaction", ex); model.Status = $"Unable to start 3D Secure Transaction. {ex}"; } return(View(model)); }
private PaymentStatusResponse RequestPaymentStatus(PayOnClient threeDSecureClient, CardAccount cardAccount, Redirect redirect) { AcsRequest acsRequest = _payOnHttpClient.GetAcsRequestAsync(redirect).Result; Log("ACS Request", JsonConvert.SerializeObject(acsRequest)); AcsResponse acsResponse = _payOnHttpClient.PostAcsRequestAsync(acsRequest).Result; Log("ACS Response", JsonConvert.SerializeObject(acsResponse)); AcsRedirectResponse acsRedirectResponse = _payOnHttpClient.GetAcsRedirectResponseAsync(acsResponse).Result; Log("ACS Redirect Response", JsonConvert.SerializeObject(acsRedirectResponse)); PaymentStatusResponse paymentStatus = threeDSecureClient.RequestPaymentStatus(acsRedirectResponse.Id); Log("3D Secure Payment Status", JsonConvert.SerializeObject(paymentStatus)); return(paymentStatus); }