public override void Install()
        {
            //settings
            var settings = new AuthorizeNetPaymentSettings {
                UseSandbox     = true,
                TransactMode   = TransactMode.Authorize,
                TransactionKey = "123",
                LoginId        = "456"
            };

            _settingService.SaveSetting(settings);

            //locales
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Notes", "If you're using this gateway, ensure that your primary store currency is supported by Authorize.NET.");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.UseSandbox", "Use Sandbox");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.UseSandbox.Hint", "Check to enable Sandbox (testing environment).");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.TransactModeValues", "Transaction mode");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.TransactModeValues.Hint", "Choose transaction mode.");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.TransactionKey", "Transaction key");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.TransactionKey.Hint", "Specify transaction key.");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.LoginId", "Login ID");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.LoginId.Hint", "Specify login identifier.");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.AdditionalFee", "Additional fee");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.AdditionalFee.Hint", "Enter additional fee to charge your customers.");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.AdditionalFeePercentage", "Additional fee. Use percentage");
            this.AddOrUpdatePluginLocaleResource("Plugins.Payments.AuthorizeNet.Fields.AdditionalFeePercentage.Hint", "Determines whether to apply a percentage additional fee to the order total. If not enabled, a fixed value is used.");

            base.Install();
        }
 public AuthorizeNetPaymentProcessor(ISettingService settingService,
                                     ICurrencyService currencyService,
                                     ICustomerService customerService,
                                     IWebHelper webHelper,
                                     IOrderTotalCalculationService orderTotalCalculationService,
                                     IOrderService orderService,
                                     IOrderProcessingService orderProcessingService,
                                     IEncryptionService encryptionService,
                                     ILogger logger,
                                     CurrencySettings currencySettings,
                                     AuthorizeNetPaymentSettings authorizeNetPaymentSettings)
 {
     this._authorizeNetPaymentSettings = authorizeNetPaymentSettings;
     this._settingService               = settingService;
     this._currencyService              = currencyService;
     this._customerService              = customerService;
     this._currencySettings             = currencySettings;
     this._webHelper                    = webHelper;
     this._orderTotalCalculationService = orderTotalCalculationService;
     this._encryptionService            = encryptionService;
     this._logger                 = logger;
     this._orderService           = orderService;
     this._orderProcessingService = orderProcessingService;
 }