public PayooPaymentGateway(
     IPayooCartService payooCartService,
     IOrderNumberGenerator orderNumberGenerator,
     IOrderRepository orderRepository,
     ICmsPaymentPropertyService cmsPaymentPropertyService)
 {
     _payooCartService           = payooCartService;
     _orderNumberGenerator       = orderNumberGenerator;
     _orderRepository            = orderRepository;
     _cmsPaymentPropertyService  = cmsPaymentPropertyService;
     _paymentMethodConfiguration = new PayooConfiguration(Settings);
 }
Exemplo n.º 2
0
        public PayooPaymentMethod(IOrderGroupFactory orderGroupFactory)
        {
            _orderGroupFactory = orderGroupFactory;

            var paymentMethodDto = PayooConfiguration.GetPayooPaymentMethod();

            _paymentMethod = paymentMethodDto?.PaymentMethod?.FirstOrDefault();

            if (_paymentMethod == null)
            {
                return;
            }

            PaymentMethodId = _paymentMethod.PaymentMethodId;
            SystemKeyword   = _paymentMethod.SystemKeyword;
            Name            = _paymentMethod.Name;
            Description     = _paymentMethod.Description;
        }
        /// <summary>
        /// Processes the payment.
        /// </summary>
        /// <param name="orderGroup">The order group.</param>
        /// <param name="payment">The payment.</param>
        public PaymentProcessingResult ProcessPayment(IOrderGroup orderGroup, IPayment payment)
        {
            if (HttpContext.Current == null)
            {
                return(PaymentProcessingResult.CreateSuccessfulResult("ProcessPaymentNullHttpContext"));
            }

            if (payment == null)
            {
                return(PaymentProcessingResult.CreateUnsuccessfulResult("PaymentNotSpecified"));
            }

            var orderForm = orderGroup.Forms.FirstOrDefault(f => f.Payments.Contains(payment));

            if (orderForm == null)
            {
                return(PaymentProcessingResult.CreateUnsuccessfulResult("PaymentNotAssociatedOrderForm"));
            }

            _paymentMethodConfiguration = new PayooConfiguration(Settings);

            var payooOrder = CreatePayooOrder(orderGroup, payment);
            var checksum   = CreatePayooChecksum(payooOrder);
            //Call Payoo gateway here
            var message  = string.Empty;
            var response = ExecuteCreatePayooPreOrderRequest(payooOrder, checksum, out message);

            if (response == null || !response.IsSuccess)
            {
                return(PaymentProcessingResult.CreateUnsuccessfulResult(message));
            }

            UpdatePaymentPropertiesFromPayooResponse(orderGroup, payment, response);

            var redirectUrl = response.order.payment_url;

            message = $"---Payoo CreatePreOrder is successful. Redirect end user to {redirectUrl}";
            return(PaymentProcessingResult.CreateSuccessfulResult(message, redirectUrl));
        }
Exemplo n.º 4
0
 private PaymentMethodDto.PaymentMethodParameterRow GetParameterByName(string name)
 {
     return(PayooConfiguration.GetParameterByName(_paymentMethodDto, name));
 }