public ButtonsViewComponent(IPaymentPluginManager paymentPluginManager, IStoreContext storeContext, IWorkContext workContext, PayPalCommerceSettings settings) { _paymentPluginManager = paymentPluginManager; _storeContext = storeContext; _workContext = workContext; _settings = settings; }
public PayLaterMessageMigration(PayPalCommerceSettings payPalCommerceSettings, ILanguageService languageService, ILocalizationService localizationService, ISettingService settingService) { _payPalCommerceSettings = payPalCommerceSettings; _languageService = languageService; _localizationService = localizationService; _settingService = settingService; }
public ScriptViewComponent(IPaymentPluginManager paymentPluginManager, IStoreContext storeContext, IWorkContext workContext, PayPalCommerceSettings settings, ServiceManager serviceManager) { _paymentPluginManager = paymentPluginManager; _storeContext = storeContext; _workContext = workContext; _settings = settings; _serviceManager = serviceManager; }
public ButtonsViewComponent(IPaymentPluginManager paymentPluginManager, IPriceCalculationService priceCalculationService, IProductService productServise, IStoreContext storeContext, IWorkContext workContext, PayPalCommerceSettings settings) { _paymentPluginManager = paymentPluginManager; _priceCalculationService = priceCalculationService; _productServise = productServise; _storeContext = storeContext; _workContext = workContext; _settings = settings; }
public PaymentInfoViewComponent(ILocalizationService localizationService, INotificationService notificationService, IPaymentService paymentService, OrderSettings orderSettings, PayPalCommerceSettings settings, ServiceManager serviceManager) { _localizationService = localizationService; _notificationService = notificationService; _paymentService = paymentService; _orderSettings = orderSettings; _settings = settings; _serviceManager = serviceManager; }
/// <summary> /// Prepare credentials and onboarding model properties /// </summary> /// <param name="model">Comfiguration model</param> /// <param name="settings">Plugin settings</param> /// <param name="storeId">Store id</param> /// <returns>A task that represents the asynchronous operation</returns> private async Task PrepareCredentialsAsync(ConfigurationModel model, PayPalCommerceSettings settings, int storeId) { model.OnboardingModel.MerchantGuid = settings.MerchantGuid; model.OnboardingModel.SignUpUrl = settings.SignUpUrl; //no need to check credentials if the plugin is already configured or credentials were manually set if (settings.SetCredentialsManually || ServiceManager.IsConfigured(settings)) { return; } //no need to check credentials until the merchant has been onboarded and signed up if (string.IsNullOrEmpty(settings.MerchantGuid) || !string.IsNullOrEmpty(settings.SignUpUrl)) { return; } var(merchant, error) = await _serviceManager.GetMerchantAsync(settings.MerchantGuid); if (merchant is null || !string.IsNullOrEmpty(error)) { var locale = await _localizationService.GetResourceAsync("Plugins.Payments.PayPalCommerce.Configuration.Error"); var errorMessage = string.Format(locale, error, Url.Action("List", "Log")); _notificationService.ErrorNotification(errorMessage, false); return; } model.OnboardingModel.AccountCreated = !string.IsNullOrEmpty(merchant.MerchantId); model.OnboardingModel.EmailConfirmed = merchant.EmailConfirmed; model.OnboardingModel.PaymentsReceivable = merchant.PaymentsReceivable; model.OnboardingModel.PermissionGranted = merchant.PermissionGranted; model.OnboardingModel.DisplayStatus = true; if (!merchant.EmailConfirmed || !merchant.PaymentsReceivable || !merchant.PermissionGranted) { var onboardingNotCompleted = await _localizationService.GetResourceAsync("Plugins.Payments.PayPalCommerce.Onboarding.InProcess"); _notificationService.WarningNotification(onboardingNotCompleted); return; } if (string.IsNullOrEmpty(merchant.ClientId) || string.IsNullOrEmpty(merchant.ClientSecret)) { var onboardingError = await _localizationService.GetResourceAsync("Plugins.Payments.PayPalCommerce.Onboarding.Error"); _notificationService.ErrorNotification(onboardingError); return; } var onboardingCompleted = await _localizationService.GetResourceAsync("Plugins.Payments.PayPalCommerce.Onboarding.Completed"); _notificationService.SuccessNotification(onboardingCompleted); //first delete the unused webhook on a previous client, if changed if ((!merchant.ClientId?.Equals(settings.ClientId) ?? true) && !string.IsNullOrEmpty(settings.WebhookUrl) && !string.IsNullOrEmpty(settings.ClientId) && !string.IsNullOrEmpty(settings.SecretKey)) { await _serviceManager.DeleteWebhookAsync(settings); } //set new settings values settings.ClientId = merchant.ClientId; settings.SecretKey = merchant.ClientSecret; model.IsConfigured = ServiceManager.IsConfigured(settings); //ensure that webhook created, display warning in case of fail if (!string.IsNullOrEmpty(settings.ClientId) && !string.IsNullOrEmpty(settings.SecretKey)) { var(webhook, _) = await _serviceManager.CreateWebhookAsync(settings, storeId); settings.WebhookUrl = webhook?.Url; if (string.IsNullOrEmpty(settings.WebhookUrl)) { var url = Url.Action("List", "Log"); var warning = string.Format(await _localizationService.GetResourceAsync("Plugins.Payments.PayPalCommerce.WebhookWarning"), url); _notificationService.WarningNotification(warning, false); } } if (!string.IsNullOrEmpty(merchant.Email) && !merchant.Email.Equals(settings.Email, StringComparison.InvariantCultureIgnoreCase)) { settings.Email = merchant.Email; model.Email = merchant.Email; } var overrideSettings = storeId > 0; await _settingService.SaveSettingOverridablePerStoreAsync(settings, setting => setting.Email, overrideSettings, storeId, false); await _settingService.SaveSettingOverridablePerStoreAsync(settings, setting => setting.WebhookUrl, overrideSettings, storeId, false); await _settingService.SaveSettingOverridablePerStoreAsync(settings, setting => setting.ClientId, overrideSettings, storeId, false); await _settingService.SaveSettingOverridablePerStoreAsync(settings, setting => setting.SecretKey, overrideSettings, storeId, false); await _settingService.ClearCacheAsync(); }
public PayPalCommerceWebhookController(PayPalCommerceSettings settings, ServiceManager serviceManager) { _settings = settings; _serviceManager = serviceManager; }