コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 private CheckoutConfiguration GetConfiguration(MarketId marketId, string languageId)
 {
     try
     {
         return(_checkoutConfigurationLoader.GetConfiguration(marketId, languageId));
     }
     catch
     {
         return(new CheckoutConfiguration());
     }
 }
コード例 #4
0
        public virtual ISwedbankPayClient Create(IMarket market)
        {
            CheckoutConfiguration checkoutConfiguration = _checkoutConfigurationLoader.GetConfiguration(market.MarketId);

            return(GetSwedbankPayClient(checkoutConfiguration));
        }
コード例 #5
0
 public CheckoutConfiguration GetConfiguration(MarketId marketId)
 {
     return(_checkoutConfigurationLoader.GetConfiguration(marketId));
 }