/// <summary>
        /// Gets the configured object from payment configuration.
        /// </summary>
        private Config GetConfig(PaymentMethodDto paymentMethodDto)
        {
            var cfg = new Config();

            cfg.setHost(GetParameterValueByName(paymentMethodDto, HostAddressParameter));

            int intResult;
            var value = GetParameterValueByName(paymentMethodDto, PathToLogFileParameter);

            if (!string.IsNullOrEmpty(value))
            {
                cfg.setLogfile(value);

                // log level can be set only if log file path was set
                int.TryParse(GetParameterValueByName(paymentMethodDto, LoggingLevelParameter), out intResult);
                cfg.setLogLevel(intResult);
            }

            value = GetParameterValueByName(paymentMethodDto, ProxyParameter);
            if (!string.IsNullOrEmpty(value))
            {
                cfg.setProxy(value);
            }

            int.TryParse(GetParameterValueByName(paymentMethodDto, TimeOutParameter), out intResult);
            if (intResult <= 0)
            {
                intResult = 60;
            }
            cfg.setTimeout(intResult);

            return(cfg);
        }
        private void PopulateCreditCardOptions(IUnitOfWork unitOfWork, PaymentOptionsDto paymentOptions)
        {
            DateTimeOffset now = DateTimeProvider.Current.Now;

            unitOfWork.GetRepository <PaymentMethod>().GetTable().Where <PaymentMethod>((Expression <Func <PaymentMethod, bool> >)(o => o.ActivateOn <now && (o.DeactivateOn ?? DateTimeOffset.MaxValue)> now && o.IsCreditCard)).Each <PaymentMethod>((Action <PaymentMethod>)(o =>
            {
                ICollection <PaymentMethodDto> paymentMethods = paymentOptions.PaymentMethods;
                PaymentMethodDto paymentMethodDto             = new PaymentMethodDto()
                {
                    Name         = o.Name,
                    IsCreditCard = o.IsCreditCard,
                    Description  = this.entityTranslationService.Value.TranslateProperty <PaymentMethod>(o, (Expression <Func <PaymentMethod, string> >)(x => x.Description))
                };
                paymentMethods.Add(paymentMethodDto);
            }));
            GetPaymentSettingsResult paymentSettings = this.paymentService.Value.GetPaymentSettings(new GetPaymentSettingsParameter());

            paymentOptions.CanStorePaymentProfile = paymentSettings.ResultCode == ResultCode.Success && paymentSettings.SupportsStoredPaymentProfiles;
            if (paymentOptions.CanStorePaymentProfile)
            {
                this.PopulateStoredPaymentProfile(paymentOptions);
            }
            this.PopulateCardTypes(paymentOptions);
            this.PopulateExpirationDates(paymentOptions);
        }
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (!Visible)
            {
                return;
            }

            _paymentMethodDto = dto as PaymentMethodDto;
            if (_paymentMethodDto?.PaymentMethodParameter != null)
            {
                var paymentMethodId = Guid.Empty;
                if (_paymentMethodDto.PaymentMethod.Count > 0)
                {
                    paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                }

                UpdateOrCreateParameter(BaseConfiguration.TransactionTypeParameter, DropDownListTransactionType, paymentMethodId);
                UpdateOrCreateParameter(BaseConfiguration.DecisionManagerIsEnabledParameter, CheckBoxDecisionManagerEnabled, paymentMethodId);
                UpdateOrCreateParameter(CreditCardConfiguration.SecretKeyParameter, SecretKey, paymentMethodId);
                UpdateOrCreateParameter(CreditCardConfiguration.AccessKeyParameter, AccessKey, paymentMethodId);
                UpdateOrCreateParameter(CreditCardConfiguration.ProfileIdParameter, ProfileId, paymentMethodId);
                UpdateOrCreateParameter(CreditCardConfiguration.UnsignedFieldsParameter, UnsignedFields, paymentMethodId);
                UpdateOrCreateParameter(CreditCardConfiguration.IsPhoneNumberAddedParameter, IsPhoneNumberAdded, paymentMethodId);
                UpdateOrCreateParameter(CreditCardConfiguration.SecureAcceptanceTransactionTypeParameter, DropDownListSecureAcceptanceTransactionType, paymentMethodId);
            }
        }
Exemple #4
0
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (!Visible)
            {
                return;
            }

            _paymentMethodDto = dto as PaymentMethodDto;
            if (_paymentMethodDto != null && _paymentMethodDto.PaymentMethodParameter != null)
            {
                var paymentMethodId = Guid.Empty;
                if (_paymentMethodDto.PaymentMethod.Count > 0)
                {
                    paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                }

                UpdateOrCreateParameter(PayooConfiguration.ApiPayooCheckoutParameter, ApiPayooCheckout, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.BusinessUsernameParameter, BusinessUsername, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.ShopIDParameter, ShopID, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.ShopTitleParameter, ShopTitle, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.ChecksumKeyParameter, ChecksumKey, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.APIUsernameParameter, APIUsername, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.APIPasswordParameter, APIPassword, paymentMethodId);
                UpdateOrCreateParameter(PayooConfiguration.APISignatureParameter, APISignature, paymentMethodId);
            }
        }
Exemple #5
0
 public void SaveChanges(object dto)
 {
     if (Visible)
     {
         paymentMethodDto = dto as PaymentMethodDto;
         if (paymentMethodDto != null && paymentMethodDto.PaymentMethodParameter != null)
         {
             var paymentMethodId = Guid.Empty;
             if (paymentMethodDto.PaymentMethod.Count > 0)
             {
                 paymentMethodId = paymentMethodDto.PaymentMethod[0].PaymentMethodId;
             }
             var param = GetParameterByName(secretKeyPayment);
             if (param != null)
             {
                 param.Value = txtSecretKey.Text;
                 PaymentManager.SavePayment(paymentMethodDto);
             }
             else
             {
                 var newRow = paymentMethodDto.PaymentMethodParameter.NewPaymentMethodParameterRow();
                 newRow.PaymentMethodId = paymentMethodId;
                 newRow.Parameter       = secretKeyPayment;
                 newRow.Value           = txtSecretKey.Text;
                 paymentMethodDto.PaymentMethodParameter.Rows.Add(newRow);
             }
         }
     }
 }
        public GenericPaymentViewModel(Guid paymentMethod, T currentPage, OrderInfo orderInfo, Cart cart) : base(currentPage)
        {
            PaymentMethodDto payment = PaymentManager.GetPaymentMethod(paymentMethod);

            _paymentMethod = payment;
            _currentCart   = cart;

            DIBSPaymentGateway gw = new DIBSPaymentGateway();

            orderInfo.Merchant = gw.Merchant;

            Mediachase.Commerce.Orders.Payment[] payments;
            if (CurrentCart != null && CurrentCart.OrderForms != null && CurrentCart.OrderForms.Count > 0)
            {
                payments = CurrentCart.OrderForms[0].Payments.ToArray();
            }
            else
            {
                payments = new Mediachase.Commerce.Orders.Payment[0];
            }
            _payment = payments.FirstOrDefault(c => c.PaymentMethodId.Equals(payment.PaymentMethod.Rows[0]["PaymentMethodId"]));


            OrderID = orderInfo.OrderId;
        }
        private void DoCapture(Payment authorizePayment, decimal amount)
        {
            if (String.IsNullOrEmpty(authorizePayment.TransactionID))
            {
                authorizePayment.TransactionID = Guid.NewGuid().ToString();
            }

            Type paymentType = null;

            PaymentMethodDto paymentMethodDto = PaymentManager.GetPaymentMethod(authorizePayment.PaymentMethodId, true);
            string           className        = paymentMethodDto.PaymentMethod[0].PaymentImplementationClassName;

            paymentType = AssemblyUtil.LoadType(className);

            Payment payment = this.OrderGroup.OrderForms[0].Payments.AddNew(paymentType);

            foreach (MetaField field in authorizePayment.MetaClass.MetaFields)
            {
                if (!field.Name.Equals("PaymentId", StringComparison.InvariantCultureIgnoreCase))
                {
                    payment[field.Name] = authorizePayment[field.Name];
                }
            }

            payment.Amount          = amount;
            payment.TransactionType = TransactionType.Capture.ToString();
            payment.Status          = PaymentStatus.Pending.ToString();
        }
Exemple #8
0
 public static PaymentMethodDto.PaymentMethodParameterRow GetParameterByName(PaymentMethodDto paymentMethodDto, string name)
 {
     var rowArray = (PaymentMethodDto.PaymentMethodParameterRow[])paymentMethodDto.PaymentMethodParameter.Select($"Parameter = '{name}'");
     if (rowArray.Length > 0)
         return rowArray[0];
     throw new ArgumentNullException($"Parameter named {name} for PayEx payment cannot be null");
 }
Exemple #9
0
        /// <inheritdoc />
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (!Visible)
            {
                return;
            }

            _paymentMethodDto = dto as PaymentMethodDto;
            if (_paymentMethodDto?.PaymentMethodParameter != null)
            {
                var paymentMethodId = Guid.Empty;
                if (_paymentMethodDto.PaymentMethod.Count > 0)
                {
                    paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                }

                UpdateOrCreateParameter(PayPalConfiguration.UserParameter, APIUser, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.BusinessEmailParameter, BusinessEmail, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.PalParameter, PAL, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.PasswordParameter, Password, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.ApiSignatureParameter, Signature, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.ExpChkoutUrlParameter, ExpChkoutURL, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.SandBoxParameter, CheckBoxTest, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.AllowChangeAddressParameter, CheckBoxAllowChangeAddress, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.SkipConfirmPageParameter, CheckBoxSkipConfirmPage, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.AllowGuestParameter, CheckBoxGuestCheckout, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.PaymentActionParameter, DropDownListPaymentAction, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.SuccessUrlParameter, SuccessUrl, paymentMethodId);
                UpdateOrCreateParameter(PayPalConfiguration.CancelUrlParameter, CancelUrl, paymentMethodId);
            }
        }
Exemple #10
0
 public void SaveChanges(object dto)
 {
     if (Visible)
     {
         paymentMethodDto = dto as PaymentMethodDto;
         if (paymentMethodDto != null && paymentMethodDto.PaymentMethodParameter != null)
         {
             var paymentMethodId = Guid.Empty;
             if (paymentMethodDto.PaymentMethod.Count > 0)
             {
                 paymentMethodId = paymentMethodDto.PaymentMethod[0].PaymentMethodId;
             }
             var param = GetParameterByName(metaClassName);
             if (param != null)
             {
                 param.Value = txtMetaclass.Text;
             }
             else
             {
                 var newRow = paymentMethodDto.PaymentMethodParameter.NewPaymentMethodParameterRow();
                 newRow.PaymentMethodId = paymentMethodId;
                 newRow.Parameter       = metaClassName;
                 newRow.Value           = txtMetaclass.Text;
                 paymentMethodDto.PaymentMethodParameter.Rows.Add(newRow);
             }
         }
     }
 }
        public void SetConfiguration(CheckoutConfiguration configuration, PaymentMethodDto paymentMethod, string currentMarket)
        {
            var serialized = JsonConvert.SerializeObject(configuration);
            var languageId = paymentMethod.PaymentMethod.First().LanguageId;

            paymentMethod.SetParameter($"{currentMarket}_{languageId}_{Constants.SwedbankPaySerializedMarketOptions}", serialized);
        }
        private void PopulatePoOptions(IUnitOfWork unitOfWork, PaymentOptionsDto paymentOptions)
        {
            Customer billTo = SiteContext.Current.BillTo;

            if (billTo.CreditHold)
            {
                return;
            }
            PaymentMethod customerPaymentMethod = unitOfWork.GetRepository <PaymentMethod>().GetTable().FirstOrDefault <PaymentMethod>((Expression <Func <PaymentMethod, bool> >)(o => o.Name == billTo.TermsCode));

            if (customerPaymentMethod == null || customerPaymentMethod.IsCreditCard)
            {
                return;
            }
            DateTimeOffset now = DateTimeProvider.Current.Now;

            unitOfWork.GetRepository <PaymentMethod>().GetTable().Where <PaymentMethod>((Expression <Func <PaymentMethod, bool> >)(o => o.ActivateOn <now && (o.DeactivateOn ?? DateTimeOffset.MaxValue)> now && o.Name.Equals(customerPaymentMethod.Name))).Each <PaymentMethod>((Action <PaymentMethod>)(o =>
            {
                ICollection <PaymentMethodDto> paymentMethods = paymentOptions.PaymentMethods;
                PaymentMethodDto paymentMethodDto             = new PaymentMethodDto()
                {
                    Name         = o.Name,
                    IsCreditCard = o.IsCreditCard,
                    Description  = this.entityTranslationService.Value.TranslateProperty <PaymentMethod>(o, (Expression <Func <PaymentMethod, string> >)(x => x.Description))
                };
                paymentMethods.Add(paymentMethodDto);
            }));
        }
        private void AddPayment(Cart cart, string paymentMethod, OrderAddress billingAddress)
        {
            //first delete existing payment
            if (cart.OrderForms[0].Payments != null && cart.OrderForms[0].Payments.Count > 0)
            {
                foreach (Payment pay in cart.OrderForms[0].Payments)
                {
                    pay.Delete();
                }
            }

            PaymentMethodDto method = PaymentManager.GetPaymentMethod(new Guid(paymentMethod));

            DibsPayment newPayment = new DibsPayment();

            newPayment.PaymentType       = PaymentType.Other;
            newPayment.PaymentMethodId   = method.PaymentMethod[0].PaymentMethodId;
            newPayment.PaymentMethodName = method.PaymentMethod[0].Name;
            newPayment.Amount            = cart.Total;

            if (billingAddress != null)
            {
                newPayment.BillingAddressId = billingAddress.Name;
            }

            cart.OrderForms[0].Payments.Add(newPayment);
        }
        public string GetAdditionalValues(PaymentMethodDto paymentMethodDto)
        {
            var additionalValues = _parameterReader.GetAdditionalValues(paymentMethodDto);

            Models.PaymentMethods.MasterPass.ValidateMasterPassAdditionalValues(additionalValues);
            return(additionalValues);
        }
Exemple #15
0
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (Visible)
            {
                _paymentMethodDto = dto as PaymentMethodDto;
                if ((_paymentMethodDto != null) && (_paymentMethodDto.PaymentMethodParameter != null))
                {
                    Guid paymentMethodId = Guid.Empty;
                    if (_paymentMethodDto.PaymentMethod.Count > 0)
                    {
                        paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                    }

                    PaymentMethodDto.PaymentMethodParameterRow parameterByName = GetParameterByName(PriceListArgsParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = PriceArgList.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, PriceListArgsParameter, PriceArgList.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AdditionalValuesParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AdditionalValues.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AdditionalValuesParameter, AdditionalValues.Text, paymentMethodId);
                    }
                }
            }
        }
Exemple #16
0
        public virtual PaymentOrderRequest GetPaymentOrderRequest(
            IOrderGroup orderGroup, IMarket market, PaymentMethodDto paymentMethodDto, string description, string consumerProfileRef = null)
        {
            if (orderGroup == null)
            {
                throw new ArgumentNullException(nameof(orderGroup));
            }
            if (market == null)
            {
                throw new ArgumentNullException(nameof(market));
            }

            var marketCountry = CountryCodeHelper.GetTwoLetterCountryCode(market.Countries.FirstOrDefault());

            if (string.IsNullOrWhiteSpace(marketCountry))
            {
                throw new ConfigurationException($"Please select a country in Commerce Manager for market {orderGroup.MarketId}");
            }


            List <OrderItem> orderItems = new List <OrderItem>();

            foreach (var orderGroupForm in orderGroup.Forms)
            {
                foreach (var shipment in orderGroupForm.Shipments)
                {
                    orderItems.AddRange(GetOrderItems(market, orderGroup.Currency, shipment.ShippingAddress, shipment.LineItems));
                    orderItems.Add(GetShippingOrderItem(shipment, market));
                }
            }

            return(CreatePaymentOrderRequest(orderGroup, market, consumerProfileRef, orderItems, description));
        }
 internal PaymentMethodDto.PaymentMethodParameterRow GetParameterByName(PaymentMethodDto paymentMethodDto, string name)
 {
     PaymentMethodDto.PaymentMethodParameterRow[] rowArray = (PaymentMethodDto.PaymentMethodParameterRow[])paymentMethodDto.PaymentMethodParameter.Select(string.Format("Parameter = '{0}'", name));
     if (rowArray.Length > 0)
         return rowArray[0];
     throw new ArgumentNullException("Parameter named " + name + " for PayEx payment cannot be null");
 }
Exemple #18
0
        protected virtual void Initialize(IDictionary <string, string> settings)
        {
            _paymentMethodDto = GetDIBSPaymentMethod();
            PaymentMethodId   = GetPaymentMethodId();

            _settings = settings ?? GetSettings();
            GetParametersValues();
        }
        public virtual string GetPaymentUrl(VerifonePaymentRequest payment)
        {
            PaymentMethodDto paymentMethodDto = GetPaymentMethodDto(payment);

            return(paymentMethodDto != null
                ? paymentMethodDto.GetPaymentUrl()
                : null);
        }
        protected virtual string GetConfigurationValue(VerifonePaymentRequest payment, string parameterName, string defaultValue = null)
        {
            PaymentMethodDto paymentMethodDto = GetPaymentMethodDto(payment);

            return(paymentMethodDto != null
                ? paymentMethodDto.GetParameter(parameterName, defaultValue)
                : defaultValue);
        }
Exemple #21
0
        /// <summary>
        /// Gets the PaymentMethodDto's parameter (setting in CommerceManager of PayPal) by name.
        /// </summary>
        /// <param name="paymentMethodDto">The payment method dto.</param>
        /// <param name="parameterName">The parameter name.</param>
        /// <returns>The parameter row.</returns>
        public static PaymentMethodDto.PaymentMethodParameterRow GetParameterByName(PaymentMethodDto paymentMethodDto, string parameterName)
        {
            var rowArray = (PaymentMethodDto.PaymentMethodParameterRow[])paymentMethodDto
                           .PaymentMethodParameter
                           .Select($"Parameter = '{parameterName}'");

            return(rowArray.Length > 0 ? rowArray[0] : null);
        }
        /// <summary>
        /// Binds the payments list.
        /// </summary>
        /// <param name="shippingRow">The shipping row.</param>
        private void BindPaymentsList(ShippingMethodDto.ShippingMethodRow shippingRow)
        {
            List <PaymentMethodDto.PaymentMethodRow> leftPayments  = new List <PaymentMethodDto.PaymentMethodRow>();
            List <PaymentMethodDto.PaymentMethodRow> rightPayments = new List <PaymentMethodDto.PaymentMethodRow>();

            PaymentMethodDto dto = PaymentManager.GetPaymentMethods(shippingRow != null ? shippingRow.LanguageId : LanguageCode, true);

            bool allToLeft = false;             // if true, then add all payments to the left list

            if (shippingRow != null)
            {
                ShippingMethodDto.ShippingPaymentRestrictionRow[] restrictedPaymentRows = shippingRow.GetShippingPaymentRestrictionRows();
                if (restrictedPaymentRows != null && restrictedPaymentRows.Length > 0)
                {
                    foreach (PaymentMethodDto.PaymentMethodRow paymentMethodRow in dto.PaymentMethod)
                    {
                        bool found = false;
                        foreach (ShippingMethodDto.ShippingPaymentRestrictionRow restrictedPaymentRow in restrictedPaymentRows)
                        {
                            if (paymentMethodRow.PaymentMethodId == restrictedPaymentRow.PaymentMethodId)
                            {
                                found = true;
                                break;
                            }
                        }

                        if (found)
                        {
                            rightPayments.Add(paymentMethodRow);
                        }
                        else
                        {
                            leftPayments.Add(paymentMethodRow);
                        }
                    }

                    PaymentsList.LeftDataSource  = leftPayments;
                    PaymentsList.RightDataSource = rightPayments;
                }
                else
                {
                    // add all payments to the left list
                    allToLeft = true;
                }
            }
            else
            {
                allToLeft = true;
            }

            if (allToLeft)
            {
                // add all payments to the left list
                PaymentsList.LeftDataSource = dto.PaymentMethod;
            }

            PaymentsList.DataBind();
        }
 public PaymentDto(
     double amount,
     string currency,
     PaymentMethodDto paymentMethodDto)
 {
     this.Amount        = amount;
     this.Currency      = currency;
     this.PaymentMethod = paymentMethodDto as CreditCardDto;
 }
Exemple #24
0
        /// <summary>
        /// Loads the fresh.
        /// </summary>
        /// <returns></returns>
        private PaymentMethodDto LoadFresh()
        {
            PaymentMethodDto pm = PaymentManager.GetPaymentMethod(PaymentMethodId, true);

            // persist in session
            Session[GetPaymentMethodSessionKey()] = pm;

            return(pm);
        }
Exemple #25
0
 private static ProviderSettings GetProviderSettings(PaymentMethodDto klarnaPaymentMethodDto)
 {
     return(new ProviderSettings(
                bool.Parse(klarnaPaymentMethodDto.GetParameter(KlarnaConstants.IsProduction)),
                klarnaPaymentMethodDto.GetParameter(KlarnaConstants.MerchantId),
                klarnaPaymentMethodDto.GetParameter(KlarnaConstants.Secret),
                klarnaPaymentMethodDto.GetParameter(KlarnaConstants.Locale)
                ));
 }
        public CheckoutConfiguration GetConfiguration(PaymentMethodDto paymentMethodDto, MarketId marketId)
        {
            var languageId = paymentMethodDto.PaymentMethod.FirstOrDefault()?.LanguageId;
            var parameter  = paymentMethodDto.GetParameter($"{marketId.Value}_{languageId}_{Constants.SwedbankPaySerializedMarketOptions}", string.Empty);

            var configuration = JsonConvert.DeserializeObject <CheckoutConfiguration>(parameter);

            return(configuration ?? new CheckoutConfiguration());
        }
        private static VippsConfiguration GetVippsCheckoutConfiguration(
            PaymentMethodDto paymentMethodDto, MarketId marketId)
        {
            var parameter = paymentMethodDto.GetParameter($"{marketId.Value}_{VippsConstants.VippsSerializedMarketOptions}", string.Empty);

            var configuration = JsonConvert.DeserializeObject <VippsConfiguration>(parameter);

            return(configuration ?? new VippsConfiguration());
        }
 internal PaymentMethodDto.PaymentMethodParameterRow GetParameterByName(PaymentMethodDto paymentMethodDto, string name)
 {
     PaymentMethodDto.PaymentMethodParameterRow[] rowArray = (PaymentMethodDto.PaymentMethodParameterRow[])paymentMethodDto.PaymentMethodParameter.Select(string.Format("Parameter = '{0}'", name));
     if (rowArray.Length > 0)
     {
         return(rowArray[0]);
     }
     throw new ArgumentNullException("Parameter named " + name + " for PayEx payment cannot be null");
 }
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (Visible)
            {
                _paymentMethodDto = dto as PaymentMethodDto;
                if ((_paymentMethodDto != null) && (_paymentMethodDto.PaymentMethodParameter != null))
                {
                    Guid paymentMethodId = Guid.Empty;
                    if (_paymentMethodDto.PaymentMethod.Count > 0)
                    {
                        paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                    }

                    PaymentMethodDto.PaymentMethodParameterRow parameterByName = GetParameterByName(PriceListArgsParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = PriceArgList.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, PriceListArgsParameter, PriceArgList.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AdditionalValuesParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AdditionalValues.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AdditionalValuesParameter, AdditionalValues.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(UseOnePhaseTransactionParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = UseOnePhaseTransaction.Checked.ToString();
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, UseOnePhaseTransactionParameter, UseOnePhaseTransaction.Checked.ToString(), paymentMethodId);
                    }

                    parameterByName = GetParameterByName(GetLegalAddressParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = GetLegalAddress.Checked.ToString();
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, GetLegalAddressParameter, GetLegalAddress.Checked.ToString(), paymentMethodId);
                    }
                }
            }

        }
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (Visible)
            {
                _paymentMethodDto = dto as PaymentMethodDto;
                if ((_paymentMethodDto != null) && (_paymentMethodDto.PaymentMethodParameter != null))
                {
                    Guid paymentMethodId = Guid.Empty;
                    if (_paymentMethodDto.PaymentMethod.Count > 0)
                    {
                        paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                    }

                    PaymentMethodDto.PaymentMethodParameterRow parameterByName = GetParameterByName(PriceListArgsParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = PriceArgList.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, PriceListArgsParameter, PriceArgList.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AdditionalValuesParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AdditionalValues.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AdditionalValuesParameter, AdditionalValues.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(UseBestPracticeFlowParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = UseBestPracticeFlow.Checked.ToString();
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, UseBestPracticeFlowParameter, UseBestPracticeFlow.Checked.ToString(), paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AddShoppingCartXmlParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AddShoppingCartXml.Checked.ToString();
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AddShoppingCartXmlParameter, AddShoppingCartXml.Checked.ToString(), paymentMethodId);
                    }
                }
            }

        }
Exemple #31
0
        public void LoadObject(object dto)
        {
            var paymentMethod = dto as PaymentMethodDto;

            if (paymentMethod == null)
            {
                return;
            }
            _paymentMethodDto = paymentMethod;
        }
        protected virtual PaymentMethodDto GetPaymentMethodDto(VerifonePaymentRequest payment)
        {
            if (payment.PaymentMethodId != Guid.Empty)
            {
                PaymentMethodDto paymentMethodDto = PaymentManager.GetPaymentMethod(payment.PaymentMethodId);
                return(paymentMethodDto);
            }

            return(null);
        }
Exemple #33
0
        private CheckoutOrderData GetCheckoutOrderData(
            ICart cart, IMarket market, PaymentMethodDto paymentMethodDto)
        {
            var totals        = _orderGroupCalculator.GetOrderGroupTotals(cart);
            var shipment      = cart.GetFirstShipment();
            var marketCountry = CountryCodeHelper.GetTwoLetterCountryCode(market.Countries.FirstOrDefault());

            if (string.IsNullOrWhiteSpace(marketCountry))
            {
                throw new ConfigurationException($"Please select a country in CM for market {cart.MarketId}");
            }
            var checkoutConfiguration = GetCheckoutConfiguration(market);

            var orderData = new PatchedCheckoutOrderData
            {
                PurchaseCountry  = marketCountry,
                PurchaseCurrency = cart.Currency.CurrencyCode,
                Locale           = ContentLanguage.PreferredCulture.Name,
                // Non-negative, minor units. Total amount of the order, including tax and any discounts.
                OrderAmount = AmountHelper.GetAmount(totals.Total),
                // Non-negative, minor units. The total tax amount of the order.
                OrderTaxAmount = AmountHelper.GetAmount(totals.TaxTotal),
                MerchantUrls   = GetMerchantUrls(cart),
                OrderLines     = GetOrderLines(cart, totals, checkoutConfiguration.SendProductAndImageUrl)
            };

            if (checkoutConfiguration.SendShippingCountries)
            {
                orderData.ShippingCountries = GetCountries().ToList();
            }

            // KCO_6 Setting to let the user select shipping options in the iframe
            if (checkoutConfiguration.SendShippingOptionsPriorAddresses)
            {
                if (checkoutConfiguration.ShippingOptionsInIFrame)
                {
                    orderData.ShippingOptions = GetShippingOptions(cart, cart.Currency, ContentLanguage.PreferredCulture);
                }
                else
                {
                    if (shipment != null)
                    {
                        orderData.SelectedShippingOption = ShippingManager.GetShippingMethod(shipment.ShippingMethodId)
                                                           ?.ShippingMethod?.FirstOrDefault()
                                                           ?.ToShippingOption();
                    }
                }
            }

            if (paymentMethodDto != null)
            {
                orderData.Options = GetOptions(cart.MarketId);
            }
            return(orderData);
        }
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (Visible)
            {
                _paymentMethodDto = dto as PaymentMethodDto;
                if ((_paymentMethodDto != null) && (_paymentMethodDto.PaymentMethodParameter != null))
                {
                    Guid paymentMethodId = Guid.Empty;
                    if (_paymentMethodDto.PaymentMethod.Count > 0)
                    {
                        paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                    }

                    PaymentMethodDto.PaymentMethodParameterRow parameterByName = GetParameterByName(PriceListArgsParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = PriceArgList.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, PriceListArgsParameter, PriceArgList.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AdditionalValuesParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AdditionalValues.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AdditionalValuesParameter, AdditionalValues.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(UseBestPracticeFlowParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = UseBestPracticeFlow.Checked.ToString();
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, UseBestPracticeFlowParameter, UseBestPracticeFlow.Checked.ToString(), paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AddShoppingCartXmlParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AddShoppingCartXml.Checked.ToString();
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AddShoppingCartXmlParameter, AddShoppingCartXml.Checked.ToString(), paymentMethodId);
                    }
                }
            }
        }
        public bool AddShoppingCartXml(PaymentMethodDto paymentMethodDto)
        {
            try
            {
                var addShoppingCartXmlValue = ParameterReader.GetParameterByName(paymentMethodDto, AddShoppingCartXmlParameter).Value;
                bool addShoppingCartXml;
                if (bool.TryParse(addShoppingCartXmlValue, out addShoppingCartXml))
                    return addShoppingCartXml;

                _log.Warn("Could not convert parameter value for addShoppingCartXml to a boolean and is therefor handled as false.");
            }
            catch (ArgumentNullException)
            {
                return false;
            }

            return false;
        }
        public bool UseBestPracticeFlow(PaymentMethodDto paymentMethodDto)
        {
            try
            {
                var useBestPracticeFlowValue = ParameterReader.GetParameterByName(paymentMethodDto, UseBestPracticeFlowParameter).Value;
                bool useBestPracticeFlow;
                if (bool.TryParse(useBestPracticeFlowValue, out useBestPracticeFlow))
                    return useBestPracticeFlow;

                _log.Warn("Could not convert parameter value for UseBestPracticeFlow to a boolean and is therefor handled as false.");
            }
            catch (ArgumentNullException)
            {
                return false;
            }

            return false;
        }
        public bool GetLegalAddress(PaymentMethodDto paymentMethodDto)
        {
            try
            {
                var getLegalAddressValue = ParameterReader.GetParameterByName(paymentMethodDto, GetLegalAddressParameter).Value;
                bool getLegalAddress;
                if (bool.TryParse(getLegalAddressValue, out getLegalAddress))
                    return getLegalAddress;

                _log.Warn("Could not convert parameter value for GetLegalAddress to a boolean and is therefor handled as false.");
            }
            catch (ArgumentNullException)
            {
                return false;
            }

            return false;
        }
 private void Create(PaymentMethodInfo paymentMethodInfo, Guid guid, string languageId)
 {
     PaymentMethodDto paymentMethod = new PaymentMethodDto();
     PaymentMethodDto.PaymentMethodRow paymentMethodRow = paymentMethod.PaymentMethod.NewPaymentMethodRow();
     paymentMethodRow[paymentMethod.PaymentMethod.PaymentMethodIdColumn] = guid;
     paymentMethodRow[paymentMethod.PaymentMethod.ApplicationIdColumn] = AppContext.Current.ApplicationId;
     paymentMethodRow[paymentMethod.PaymentMethod.NameColumn] = paymentMethodInfo.Name;
     paymentMethodRow[paymentMethod.PaymentMethod.DescriptionColumn] = paymentMethodInfo.Description;
     paymentMethodRow[paymentMethod.PaymentMethod.LanguageIdColumn] = languageId;
     paymentMethodRow[paymentMethod.PaymentMethod.SystemKeywordColumn] = paymentMethodInfo.SystemKeyword;
     paymentMethodRow[paymentMethod.PaymentMethod.IsActiveColumn] = false;
     paymentMethodRow[paymentMethod.PaymentMethod.IsDefaultColumn] = false;
     paymentMethodRow[paymentMethod.PaymentMethod.ClassNameColumn] = paymentMethodInfo.ClassName;
     paymentMethodRow[paymentMethod.PaymentMethod.PaymentImplementationClassNameColumn] = paymentMethodInfo.PaymentClassName;
     paymentMethodRow[paymentMethod.PaymentMethod.SupportsRecurringColumn] = false;
     paymentMethodRow[paymentMethod.PaymentMethod.OrderingColumn] = paymentMethodInfo.SortOrder;
     paymentMethodRow[paymentMethod.PaymentMethod.CreatedColumn] = FrameworkContext.Current.CurrentDateTime;
     paymentMethodRow[paymentMethod.PaymentMethod.ModifiedColumn] = FrameworkContext.Current.CurrentDateTime;
     paymentMethod.PaymentMethod.Rows.Add(paymentMethodRow);
     PaymentManager.SavePayment(paymentMethod);
 }
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (Visible)
            {
                _paymentMethodDto = dto as PaymentMethodDto;
                if ((_paymentMethodDto != null) && (_paymentMethodDto.PaymentMethodParameter != null))
                {
                    Guid paymentMethodId = Guid.Empty;
                    if (_paymentMethodDto.PaymentMethod.Count > 0)
                    {
                        paymentMethodId = _paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                    }

                    PaymentMethodDto.PaymentMethodParameterRow parameterByName = GetParameterByName(PriceListArgsParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = PriceArgList.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, PriceListArgsParameter, PriceArgList.Text, paymentMethodId);
                    }

                    parameterByName = GetParameterByName(AdditionalValuesParameter);
                    if (parameterByName != null)
                    {
                        parameterByName.Value = AdditionalValues.Text;
                    }
                    else
                    {
                        CreateParameter(_paymentMethodDto, AdditionalValuesParameter, AdditionalValues.Text, paymentMethodId);
                    }
                }
            }

        }
 public void LoadObject(object dto)
 {
     _paymentMethodDto = dto as PaymentMethodDto;
 }
 public string GetPriceArgsList(PaymentMethodDto paymentMethodDto)
 {
     return _parameterReader.GetPriceArgsList(paymentMethodDto);
 }
 private void CreateParameter(PaymentMethodDto dto, string name, string value, Guid paymentMethodId)
 {
     PaymentMethodDto.PaymentMethodParameterRow row = dto.PaymentMethodParameter.NewPaymentMethodParameterRow();
     row.PaymentMethodId = paymentMethodId;
     row.Parameter = name;
     row.Value = value;
     if (row.RowState == DataRowState.Detached)
     {
         dto.PaymentMethodParameter.Rows.Add(row);
     }
 }
 public ConfigurePayment()
 {
     ValidationGroup = string.Empty;
     _paymentMethodDto = null;
 }
        /// <summary>
        /// Saves the changes.
        /// </summary>
        /// <param name="dto">The dto.</param>
        public void SaveChanges(object dto)
        {
            if (this.Visible)
            {
                this._paymentMethodDto = dto as PaymentMethodDto;
                if ((this._paymentMethodDto != null) && (this._paymentMethodDto.PaymentMethodParameter != null))
                {
                    Guid paymentMethodId = Guid.Empty;
                    if (this._paymentMethodDto.PaymentMethod.Count > 0)
                    {
                        paymentMethodId = this._paymentMethodDto.PaymentMethod[0].PaymentMethodId;
                    }

                    SaveParameter(DIBSPaymentGateway.UserParameter, User, paymentMethodId);

                    SaveParameter(DIBSPaymentGateway.ProcessingUrl, ProcessingUrl, paymentMethodId);

                    SaveParameter(DIBSPaymentGateway.KeyParameter, Key, paymentMethodId);
                }
            }
        }
        /// <summary>
        /// Processes the payment.
        /// </summary>
        /// <param name="payment">The payment.</param>
        /// <param name="message">The message.</param>
        /// <returns></returns>
        public override bool ProcessPayment(Mediachase.Commerce.Orders.Payment payment, ref string message)
        {
            // We need this for some of the properties on this class that loads
            // payment method parameters (like MDS keys)
            _payment = PaymentManager.GetPaymentMethod(payment.PaymentMethodId); // .GetPaymentMethodBySystemName("DIBS", SiteContext.Current.LanguageName);

            if (payment.Parent.Parent is PurchaseOrder)
            {
                if (payment.TransactionType == TransactionType.Capture.ToString())
                {
                    bool isCaptured= CaptureTransaction(payment);

                    if (!isCaptured)
                    {
                        message = "There was an error while capturing payment with DIBS";
                        return false;
                    }
                    return true;
                }

                if (payment.TransactionType == TransactionType.Credit.ToString())
                {
                    var transactionID = payment.TransactionID;
                    if (string.IsNullOrEmpty(transactionID) || transactionID.Equals("0"))
                    {
                        message = "TransactionID is not valid or the current payment method does not support this order type.";
                        return false;
                    }
                    //The transact must be captured before refunding
                    bool isRefunded = RefundTransaction(payment);
                    if (!isRefunded)
                    {
                        message = "There was an error while refunding with DIBS";
                        return false;
                    }

                    return true;
                }
                //right now we do not support processing the order which is created by Commerce Manager
                message = "The current payment method does not support this order type.";
                return false;
            }

            Cart cart = payment.Parent.Parent as Cart;
            if (cart != null && cart.Status == PaymentCompleted)
            {
                //return true because this shopping cart has been paid already on DIBS
                return true;
            }

            if (HttpContext.Current != null)
            {
                var pageRef = DataFactory.Instance.GetPage(PageReference.StartPage)["DIBSPaymentPage"] as PageReference;
                PageData page = DataFactory.Instance.GetPage(pageRef);
                HttpContext.Current.Response.Redirect(page.LinkURL);
            }
            else
            {
                throw new NullReferenceException("Cannot redirect to payment page without Http Context");
            }

            return true;
        }
 public string GetPaymentMethodCode(PaymentMethodDto paymentMethodDto)
 {
     return ParameterReader.GetParameterByName(paymentMethodDto, PaymentMethodCodeParameter).Value;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="ConfigurePayment"/> class.
 /// </summary>
 public ConfigurePayment()
 {
     this._validationGroup = string.Empty;
     this._paymentMethodDto = null;
 }
 public string GetAdditionalValues(PaymentMethodDto paymentMethodDto)
 {
     var additionalValues = _parameterReader.GetAdditionalValues(paymentMethodDto);
     Models.PaymentMethods.MasterPass.ValidateMasterPassAdditionalValues(additionalValues);
     return additionalValues;
 }
 /// <summary>
 /// Gets the parameter by name.
 /// </summary>
 /// <param name="paymentMethodDto">The payment method dto.</param>
 /// <param name="name">The name.</param>
 /// <returns></returns>
 public static PaymentMethodDto.PaymentMethodParameterRow GetParameterByName(PaymentMethodDto paymentMethodDto, string name)
 {
     PaymentMethodDto.PaymentMethodParameterRow[] rowArray = (PaymentMethodDto.PaymentMethodParameterRow[])paymentMethodDto.PaymentMethodParameter.Select(string.Format("Parameter = '{0}'", name));
     if ((rowArray != null) && (rowArray.Length > 0))
     {
         return rowArray[0];
     }
     throw new ArgumentNullException("Parameter named " + name + " for DIBS payment cannot be null");
 }
        /// <summary>
        /// Adds a payment method for a specific language.
        /// </summary>
        /// <param name="id">The ID of the payment method.</param>
        /// <param name="name">The name of the payment method.</param>
        /// <param name="systemKeyword">The system name of the payment method.</param>
        /// <param name="description">A description of the payment method.</param>
        /// <param name="implementationClass"></param>
        /// <param name="gatewayClass"></param>
        /// <param name="isDefault">Indicate whether it should be the default method or not.</param>
        /// <param name="orderIndex">The ordering index when the method is listed.</param>
        /// <param name="markets">All markets the method should be associated with.</param>
        /// <param name="language">The language for the payment method.</param>
        /// <param name="paymentMethodDto">The dataset used for creating new payment method rows.</param>
        private static void AddPaymentMethod(Guid id, string name, string systemKeyword, string description, string implementationClass, string gatewayClass,
            bool isDefault, int orderIndex, IEnumerable<IMarket> markets, CultureInfo language, PaymentMethodDto paymentMethodDto)
        {
            var row = paymentMethodDto.PaymentMethod.AddPaymentMethodRow(id, name, description, language.TwoLetterISOLanguageName,
                            systemKeyword, true, isDefault, gatewayClass,
                            implementationClass, false, orderIndex, DateTime.Now, DateTime.Now, AppContext.Current.ApplicationId);

            var paymentMethod = new PaymentMethod(row);
            paymentMethod.MarketId.AddRange(markets.Where(x => x.IsEnabled && x.Languages.Contains(language)).Select(x => x.MarketId));
            paymentMethod.SaveChanges();
        }
 public string GetPriceArgsList(PaymentMethodDto paymentMethodDto)
 {
     return GetParameterByName(paymentMethodDto, PriceListArgsParameter).Value;
 }
 public string GetAdditionalValues(PaymentMethodDto paymentMethodDto)
 {
     return GetParameterByName(paymentMethodDto, AdditionalValuesParameter).Value;
 }
        /// <summary>
        /// Creates the settings.
        /// </summary>
        /// <param name="methodRow">The method row.</param>
        /// <returns></returns>
        private Dictionary<string, string> CreateSettings(PaymentMethodDto.PaymentMethodRow methodRow)
        {
            Dictionary<string, string> settings = new Dictionary<string, string>();

            PaymentMethodDto.PaymentMethodParameterRow[] rows = methodRow.GetPaymentMethodParameterRows();
            foreach (PaymentMethodDto.PaymentMethodParameterRow row in rows)
            {
                settings.Add(row.Parameter, row.Value);
            }

            return settings;
        }
Exemple #54
0
 public FinancingInvoiceConfigurePayment()
 {
     ValidationGroup = string.Empty;
     _paymentMethodDto = null;
 }