Ejemplo n.º 1
0
        public CardPaymentFactory(
            IRepository <Account> accounts,
            IRepository <UserPaymentProfile> paymentProfiles,
            IRepository <Currency> currencies,
            IQueryRepository <CorrespondentAccount> correspondentAccounts,
            TransactionReferenceBook transactionReferenceBook,
            MoneyConverter moneyConverter,
            PaymentFormFactory paymentFormFactory)
        {
            Argument.NotNull(accounts, "accounts");
            Argument.NotNull(paymentProfiles, "paymentProfiles");
            Argument.NotNull(currencies, "currencies");
            Argument.NotNull(correspondentAccounts, "correspondentAccounts");
            Argument.NotNull(transactionReferenceBook, "transactionReferenceBook");
            Argument.NotNull(moneyConverter, "moneyConverter");
            Argument.NotNull(paymentFormFactory, "paymentFormFactory");

            _settings                 = new BankSettings();
            _currencies               = currencies;
            _correspondentAccounts    = correspondentAccounts;
            _paymentProfiles          = paymentProfiles;
            _accounts                 = accounts;
            _transactionReferenceBook = transactionReferenceBook;
            _moneyConverter           = moneyConverter;
            _paymentFormFactory       = paymentFormFactory;
        }
Ejemplo n.º 2
0
        public static IServiceCollection AddBank(this IServiceCollection service, IConfiguration config)
        {
            var section  = config.GetSection("Bank");
            var settings = new BankSettings();

            new ConfigureFromConfigurationOptions <BankSettings>(section).Configure(settings);
            return(service.AddSingleton(new Bank(settings)));
        }
        internal BaseOperationProcessor(BaseOperationProcessorDependencies baseDependencies)
        {
            Argument.NotNull(baseDependencies, "baseDependencies");
            baseDependencies.EnsureIsResolved();
            Logger = LogManager.GetLogger(GetType().FullName);

            MoneyConverter           = baseDependencies.MoneyConverter;
            TransactionRepository    = baseDependencies.TransactionRepository;
            TransactionReferenceBook = baseDependencies.TransactionReferenceBook;
            Settings = new BankSettings();
        }
        public static IServiceCollection RegisterAcquiringBanks(this IServiceCollection services,
                                                                HostBuilderContext context)
        {
            var bankSettings = new BankSettings();

            context.Configuration.GetSection("BankSettings").Bind(bankSettings);

            services.AddSingleton(bankSettings);
            services.AddScoped <IBankFactory, AcquiringBankFactory>();
            services.AddScoped <ICallBankApi, CallBankApi>();
            return(services);
        }
Ejemplo n.º 5
0
 public CardTransferFactory(IRepository <OperationCategory> operationCategories,
                            TransactionReferenceBook transactionReferenceBook,
                            MoneyConverter moneyConverter)
 {
     Argument.NotNull(operationCategories, "operationCategories");
     Argument.NotNull(transactionReferenceBook, "transactionReferenceBook");
     Argument.NotNull(moneyConverter, "moneyConverter");
     _operationCategories      = operationCategories;
     _transactionReferenceBook = transactionReferenceBook;
     _moneyConverter           = moneyConverter;
     _settings = new BankSettings();
 }
        public UserCardLimitsPolicy(IRepository <UserCard> userCardRepository,
                                    IQueryRepository <CardTransaction> cardTransactionRepository,
                                    BankingSystemSchedule schedule)
        {
            Argument.NotNull(userCardRepository, "userCardRepository");
            Argument.NotNull(cardTransactionRepository, "cardTransactionRepository");
            Argument.NotNull(schedule, "schedule");

            _userCardRepository        = userCardRepository;
            _cardTransactionRepository = cardTransactionRepository;
            _schedule = schedule;
            _settings = new BankSettings();
        }
Ejemplo n.º 7
0
        private void Test_Setting_Provider_No_Data(ISettingProvider provider)
        {
            var origSettings = new BankSettings();

            provider.SaveSettings("myfolder1/myfolder2/2", origSettings);
            var newSettings = provider.GetSettings <BankSettings>("myfolder1/myfolder2/2");

            // Validate the original settings are the same as the restored settings
            Assert.Equal(origSettings.DeviceNumber, newSettings.DeviceNumber);
            Assert.Equal(origSettings.DeviceType, newSettings.DeviceType);
            Assert.Equal(origSettings.MultiplexerConfigName, newSettings.MultiplexerConfigName);
            Assert.Equal(origSettings.VCardPrefix, newSettings.VCardPrefix);
            Assert.Equal(origSettings.IntPropertyWithNoMetadata, newSettings.IntPropertyWithNoMetadata);
            Assert.Equal(origSettings.FIType, newSettings.FIType);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Setup for this project
        /// </summary>
        static void Setup()
        {
            // Configure dependency injection
            IServiceCollection services = new ServiceCollection();

            services.AddBankingSdk();

            // Configure BankingSDK general settings
            BankSettings generalBankSettings = new BankSettings
            {
                NcaId              = NcaId,
                TlsCertificate     = new X509Certificate2(TlsCertificatePath, TlsCertificatePassword),
                SigningCertificate = new X509Certificate2(SigningCertificatePath, SigningCertificatePassword)
            };

            BankingFactory.SdkSettings.Set(generalBankSettings, BankingSDKCompanyKey, BankingSDKApplicationKey, BankingSDKSecret, BankingSDKTTPName, true);
        }
Ejemplo n.º 9
0
        private static void AddPrivatbankIntegration(this IServiceCollection services, BankIntegrationSettings banksSettings)
        {
            BankSettings settings = banksSettings.Banks.FirstOrDefault(b => PrivatbankConfig.BANK_NAME.Equals(b.Name, StringComparison.OrdinalIgnoreCase));

            if (settings == null || string.IsNullOrWhiteSpace(settings.ApiUri))
            {
                throw new Exception($"Missing settings for {PrivatbankConfig.BANK_NAME} integration.");
            }

            services.AddHttpClient <PrivatbankClient>(c =>
            {
                c.BaseAddress = new Uri(settings.ApiUri);
            });

            services.AddScoped <PrivatbankAccountService>();
            services.AddScoped <PrivatbankExchangeRateService>();

            services.AddScoped <IBankIntegrationService, PrivatbankIntegrationService>();
        }
Ejemplo n.º 10
0
        public CustomPaymentOrderPaymentValidator(
            IRepository <Bank> bankRepository,
            IRepository <Account> accountRepository)
        {
            Argument.NotNull(bankRepository, "bankRepository");
            Argument.NotNull(accountRepository, "accountRepository");

            _bankSettings      = new BankSettings();
            _bankRepository    = bankRepository;
            _accountRepository = accountRepository;

            RuleFor(x => x.Amount)
            .GreaterThanOrEqualTo(100)
            .WithLocalizedMessage(() => Messages.MinAmountPayment, 100)
            .LessThan(5000000)
            .WithLocalizedName(() => Names.Amount);
            RuleFor(x => x.BeneficiaryAccountNo)
            .NotEmpty()
            .UseValidator(new AccountNumberValidator())
            .Must(VaBankAccountExists)
            .When(x => x.BeneficiaryBankCode == _bankSettings.VaBankCode)
            .WithLocalizedMessage(() => Messages.AccountDoesntExist);
            RuleFor(x => x.BeneficiaryName)
            .NotEmpty()
            .Length(1, 100)
            .WithLocalizedName(() => Names.BeneficiaryName);
            RuleFor(x => x.BeneficiaryTIN)
            .NotEmpty()
            .UseValidator(new TINValidator())
            .WithLocalizedName(() => Names.BeneficiaryTIN);
            RuleFor(x => x.BeneficiaryBankCode)
            .NotEmpty()
            .UseValidator(new BankCodeValidator(bankRepository))
            .WithLocalizedName(() => Names.BeneficiaryBankCode);
            RuleFor(x => x.PaymentCode)
            .UseValidator(new PaymentCodeValidator())
            .When(x => !string.IsNullOrEmpty(x.PaymentCode))
            .WithLocalizedName(() => Names.PaymentCode);
            RuleFor(x => x.Purpose)
            .NotEmpty()
            .Length(1, 256)
            .WithLocalizedName(() => Names.Purpose);
        }
Ejemplo n.º 11
0
        private void Test_Setting_Provider_Test_Data(ISettingProvider provider)
        {
            var origSettings = new BankSettings();

            origSettings.DeviceNumber              = "My Device Number";
            origSettings.DeviceType                = "My Device Type";
            origSettings.MultiplexerConfigName     = "My MultiplexerConfigName";
            origSettings.IntPropertyWithNoMetadata = 5678;
            origSettings.FIType = FIType.Bank;
            //origSettings.VCardPrefix = "My VCard Prefix";
            provider.SaveSettings("BankSettings/Device/1", origSettings);
            var newSettings = provider.GetSettings <BankSettings>("BankSettings/Device/1");

            // Validate the original settings are the same as the restored settings
            Assert.Equal(origSettings.DeviceNumber, newSettings.DeviceNumber);
            Assert.Equal(origSettings.DeviceType, newSettings.DeviceType);
            Assert.Equal(origSettings.MultiplexerConfigName, newSettings.MultiplexerConfigName);
            Assert.Equal(origSettings.VCardPrefix, newSettings.VCardPrefix);
            Assert.Equal(origSettings.IntPropertyWithNoMetadata, newSettings.IntPropertyWithNoMetadata);
            Assert.Equal(origSettings.FIType, newSettings.FIType);
        }
Ejemplo n.º 12
0
 public BaseBnpConnector(BankSettings settings, Uri productionUrl, Uri productionAuthUrl, ConnectorType connectorType) : base(settings, connectorType)
 {
     _apiUrlProduction  = productionUrl;
     _authUrlProduction = productionAuthUrl;
 }
Ejemplo n.º 13
0
        private bool SaveSettings()
        {
            EditRobotsTxt.SaveRobots();
            BankSettings.SaveData();
            ApiSettings.SaveData();

            bool valid = true;

            if (!NewsSettings.SaveData())
            {
                MsgErr(NewsSettings.ErrMessage);
                valid = false;
            }
            if (!MailSettings.SaveData())
            {
                MsgErr(MailSettings.ErrMessage);
                valid = false;
            }
            if (!GeneralSettings.SaveData())
            {
                MsgErr(GeneralSettings.ErrMessage);
                valid = false;
            }
            if (!SEOSettings.SaveData())
            {
                MsgErr(SEOSettings.ErrMessage);
                valid = false;
            }

            if (!CountersSettings.SaveData())
            {
                MsgErr(CountersSettings.ErrMessage);
                valid = false;
            }

            if (!OrderConfirmationSettings.SaveData())
            {
                MsgErr(OrderConfirmationSettings.ErrMessage);
                valid = false;
            }
            if (!NotifyEmailsSettings.SaveData())
            {
                MsgErr(NotifyEmailsSettings.ErrMessage);
                valid = false;
            }

            if (!OAuthSettings.SaveData())
            {
                MsgErr(OAuthSettings.ErrMessage);
                valid = false;
            }


            if (!CatalogSettings.SaveData())
            {
                MsgErr(CatalogSettings.ErrMessage);
                valid = false;
            }

            if (!DetailsSettings.SaveData())
            {
                MsgErr(DetailsSettings.ErrMessage);
                valid = false;
            }

            if (!TaskSettings.SaveData())
            {
                MsgErr(TaskSettings.ErrMessage);
                valid = false;
            }

            if (!ProfitSettings.SaveData())
            {
                MsgErr(ProfitSettings.ErrMessage);
                valid = false;
            }

            SocialSettings.SaveData();

            return(valid);
        }
Ejemplo n.º 14
0
 public DeIngConnector(BankSettings settings) : base(settings, "DE", ConnectorType.DE_ING)
 {
 }
Ejemplo n.º 15
0
 public FrCreditMunicipalConnector(BankSettings settings) : base(settings, "https://sandbox.ccmdirect.fr", "https://api.ccmdirect.fr", ConnectorType.FR_CREDIT_MUNICIPAL)
 {
 }
Ejemplo n.º 16
0
 public BaseKbcConnector(BankSettings settings, ConnectorType connectorType) : base(settings, connectorType)
 {
 }
Ejemplo n.º 17
0
 public BeCbcConnector(BankSettings settings) : base(settings, ConnectorType.BE_CBC)
 {
 }
Ejemplo n.º 18
0
        static async Task Main(string[] args)
        {
            var services = new ServiceCollection();

            services.AddBankingSdk();

            // Setting general settings of BankingSDk
            BankSettings generalBankSettings = new BankSettings();

            generalBankSettings.NcaId = "VALID_NCA_ID";
            string filePath  = @"C:\Users\Yassine\Documents\StageEntrainement\BankingSDK - Copie\BankingSDK\Test\TestApp\example_eidas_client_tls.cer";
            string filePath2 = @"C:\Users\Yassine\Documents\StageEntrainement\BankingSDK - Copie\BankingSDK\Test\TestApp\example_eidas_client_signing.cer";

            generalBankSettings.TlsCertificate     = new X509Certificate2(filePath, "banking");
            generalBankSettings.SigningCertificate = new X509Certificate2(filePath2, "banking");


            SdkApiSettings.CompanyKey     = "1df53a2d-26aa-4ef1-9f3c-09a1092e5413";
            SdkApiSettings.ApplicationKey = "d7726cbf-e51f-4e0e-a3bb-132913ad8032";
            SdkApiSettings.Secret         = "W2ANVUVRQS7AKBFCZLKHGLWXCC6FRUGXAV3O3E33H7D1ZULX6ME6UKOKGNKSXPA6LK9YH1JUSR9JI58S0JIEPKCZHSIQ4KF27GPOUWPFDTODKECLP11OG5RBHJRZT20HMHLBPT7D4DB559PCP6BCS1VBZOHKF0VK3G1D2B564XUD4VFH4OJW1YZVVKLBLW8ER0CYIMKOBEH4GSGEI9Q1Q9SERGRSZ3UHZQVDTR9SD4UWQ4ODDH3MGGXSI7GC42ZH";
            SdkApiSettings.TppLegalName   = "EXTHAND";
            SdkApiSettings.IsSandbox      = false;


            //BankingSDK. bankConnector = new Connector(generalBankSettings);
            BankingSDK.BE.KBC.BeKbcConnector bankConnector = new BeKbcConnector(generalBankSettings);

            string userId      = Guid.NewGuid().ToString();
            string userContect = (await bankConnector.RegisterUserAsync(userId)).GetData().ToJson();

            string callBackUrl = "https://developer.bankingsdk.com/callback";

            AccountsAccessRequest accountsAccessRequest = new AccountsAccessRequest {
                FlowId          = SdkApiSettings.ApplicationKey,
                FrequencyPerDay = 4,
                RedirectUrl     = callBackUrl,
                PsuIp           = "10.10.10.10",
                SingleAccount   = "BE91732047678076"
            };

            BankingResult <string> bankingResult = await bankConnector.RequestAccountsAccessAsync(accountsAccessRequest);

            if (bankingResult.GetStatus() == ResultStatus.REDIRECT)
            {
                // We get the flow context.
                var    flowContext          = bankingResult.GetFlowContext();
                string redirectUrlOnTheBank = bankingResult.GetData();

                var psi = new ProcessStartInfo(@"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe");
                psi.Arguments = redirectUrlOnTheBank;
                Process.Start(psi);


                Console.WriteLine("QueryString received?");
                string queryString = Console.ReadLine();

                BankingResult <IUserContext> result = await bankConnector.RequestAccountsAccessFinalizeAsync(flowContext, queryString);

                if (result.GetStatus() == ResultStatus.DONE)
                {
                    Console.WriteLine("Ok. Cool.");

                    BankingResult <List <Account> > accounts = await bankConnector.GetAccountsAsync();

                    foreach (Account account in accounts.GetData())
                    {
                        Console.WriteLine("Account " + account.Iban);

                        BankingResult <List <Balance> > resultBalances = await bankConnector.GetBalancesAsync(account.Iban);

                        if (resultBalances.GetStatus() == ResultStatus.DONE)
                        {
                            List <Balance> accountBalances = resultBalances.GetData();
                            foreach (Balance balance in accountBalances)
                            {
                                Console.WriteLine("  Balance : " + balance.BalanceAmount + " " + balance.ReferenceDate?.ToString("dd MMM yyyy"));
                            }
                        }
                    }
                }
            }
            Console.ReadLine();
            return;
        }
 public BeNagelmackersConnector(BankSettings settings) : base(settings, "https://openbankingsandbox.nagelmackers.be", "https://openbankingapi.nagelmackers.be", ConnectorType.BE_NAGELMACKERS)
 {
 }
Ejemplo n.º 20
0
 public PaymentFormFactory()
 {
     _bankSettings = new BankSettings();
 }
Ejemplo n.º 21
0
 public AtIngConnector(BankSettings settings) : base(settings, "AT", ConnectorType.AT_ING)
 {
 }
 public FrNeuflizeObcConnector(BankSettings settings) : base(settings, "https://sandbox.neuflizeobc.fr", "https://api.neuflizeobc.fr", ConnectorType.FR_NEUFLIZE_OBC)
 {
 }
Ejemplo n.º 23
0
 public LuSocieteGeneraleConnector(BankSettings settings) : base(settings, ConnectorType.LU_SOCIETE_GENERALE)
 {
 }
Ejemplo n.º 24
0
 public FrIngConnector(BankSettings settings) : base(settings, "FR", ConnectorType.FR_ING)
 {
 }
Ejemplo n.º 25
0
 public MoneytransConnector(BankSettings settings) : base(settings, 1000)
 {
 }
 public FrOrangeBankConnector(BankSettings settings) : base(settings, "https://sandbox-api-tpp.orangebank.fr", "https://api-tpp.orangebank.fr", ConnectorType.FR_ORANGE_BANK)
 {
 }
Ejemplo n.º 27
0
 public PlIngConnector(BankSettings settings) : base(settings, "PL", ConnectorType.PL_ING)
 {
 }
Ejemplo n.º 28
0
 public LuIngConnector(BankSettings settings) : base(settings, "LU", ConnectorType.LU_ING)
 {
 }
 public BeVanBredaConnector(BankSettings settings) : base(settings, "https://xs2a-sandbox.bankvanbreda.be", "https://xs2a-api.bankvanbreda.be", ConnectorType.BE_VAN_BREDA)
 {
 }
Ejemplo n.º 30
0
 public BeVdkConnector(BankSettings settings) : base(settings, "https://xs2a-sandbox-api.vdk.be", "https://xs2a-api.vdk.be", ConnectorType.BE_VDK)
 {
 }