public virtual Consumer InitiateConsumerSession(CultureInfo currentLanguage, string email = null, string mobilePhone = null, string ssn = null) { var market = _currentMarket.GetCurrentMarket(); var swedbankPayClient = _swedbankPayClientFactory.Create(market); var config = _checkoutConfigurationLoader.GetConfiguration(market.MarketId); try { var initiateConsumerSessionRequest = _requestFactory.GetConsumerResourceRequest(new Language(currentLanguage.TextInfo.CultureName), config.ShippingAddressRestrictedToCountries.Select(x => new RegionInfo(CountryCodeHelper.GetTwoLetterCountryCode(x))), string.IsNullOrEmpty(email) ? null : new EmailAddress(email), string.IsNullOrEmpty(mobilePhone) ? null : new Msisdn(mobilePhone), string.IsNullOrEmpty(ssn) ? null : new NationalIdentifier(new RegionInfo(currentLanguage.TextInfo.CultureName), ssn)); return(AsyncHelper.RunSync(() => swedbankPayClient.Consumers.InitiateSession(initiateConsumerSessionRequest))); } catch (Exception ex) { _logger.Error(ex.Message, ex); throw; } }
private PaymentOrderRequest CreatePaymentOrderRequest(IOrderGroup orderGroup, IMarket market, string consumerProfileRef, List <OrderItem> orderItems, string description) { var configuration = _checkoutConfigurationLoader.GetConfiguration(market.MarketId); var currencyCode = orderGroup.Currency.CurrencyCode; var payer = !string.IsNullOrEmpty(consumerProfileRef) ? new Payer { ConsumerProfileRef = consumerProfileRef } : null; var payeeReference = DateTime.Now.Ticks.ToString(); return(new PaymentOrderRequest(Operation.Purchase, new CurrencyCode(currencyCode), Amount.FromDecimal(GetTotalAmountIncludingVatAsDecimal(orderItems)), Amount.FromDecimal(GetTotalVatAmountAsDecimal(orderItems)), description, HttpContext.Current.Request.UserAgent, CultureInfo.CreateSpecificCulture(ContentLanguage.PreferredCulture.Name), false, GetMerchantUrls(orderGroup, market, payeeReference), new PayeeInfo(new Guid(configuration.MerchantId), payeeReference), orderItems: orderItems, payer: payer)); }
private CheckoutConfiguration GetConfiguration(MarketId marketId, string languageId) { try { return(_checkoutConfigurationLoader.GetConfiguration(marketId, languageId)); } catch { return(new CheckoutConfiguration()); } }
public virtual ISwedbankPayClient Create(IMarket market) { CheckoutConfiguration checkoutConfiguration = _checkoutConfigurationLoader.GetConfiguration(market.MarketId); return(GetSwedbankPayClient(checkoutConfiguration)); }
public CheckoutConfiguration GetConfiguration(MarketId marketId) { return(_checkoutConfigurationLoader.GetConfiguration(marketId)); }