Exemple #1
0
        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));
        }
Exemple #2
0
        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);
        }