private PayPalPlusCheckoutModel.ThirdPartyPaymentMethod GetThirdPartyPaymentMethodModel( Provider <IPaymentMethod> provider, PayPalPlusPaymentSettings settings, Store store) { var model = new PayPalPlusCheckoutModel.ThirdPartyPaymentMethod(); model.MethodName = GetPaymentMethodName(provider); model.RedirectUrl = Url.Action("CheckoutReturn", "PayPalPlus", new { area = Plugin.SystemName, systemName = provider.Metadata.SystemName }, store.SslEnabled ? "https" : "http"); try { if (settings.DisplayPaymentMethodDescription) { // not the short description, the full description is intended for frontend var paymentMethod = _paymentService.GetPaymentMethodBySystemName(provider.Metadata.SystemName); if (paymentMethod != null) { string description = paymentMethod.GetLocalized(x => x.FullDescription); if (description.HasValue()) { description = HtmlUtils.ConvertHtmlToPlainText(description); description = HtmlUtils.StripTags(HttpUtility.HtmlDecode(description)); if (description.HasValue()) { model.Description = description.EncodeJsString(); } } } } } catch { } try { if (settings.DisplayPaymentMethodLogo && provider.Metadata.PluginDescriptor != null && store.SslEnabled) { var brandImageUrl = _pluginMediator.GetBrandImageUrl(provider.Metadata); if (brandImageUrl.HasValue()) { if (brandImageUrl.StartsWith("~")) { brandImageUrl = brandImageUrl.Substring(1); } var uri = new UriBuilder(Uri.UriSchemeHttps, Request.Url.Host, -1, brandImageUrl); model.ImageUrl = uri.ToString(); } } } catch { } return(model); }
private PayPalPlusCheckoutModel.ThirdPartyPaymentMethod GetThirdPartyPaymentMethodModel( Provider <IPaymentMethod> provider, PayPalPlusPaymentSettings settings, Store store) { var model = new PayPalPlusCheckoutModel.ThirdPartyPaymentMethod(); try { model.RedirectUrl = Url.Action("CheckoutReturn", "PayPalPlus", new { area = Plugin.SystemName, systemName = provider.Metadata.SystemName }, store.SslEnabled ? "https" : "http"); if (provider.Metadata.SystemName == PayPalInstalmentsProvider.SystemName) { // "The methodName contains up to 25 characters. All additional characters are truncated." // https://developer.paypal.com/docs/paypal-plus/germany/how-to/integrate-third-party-payments/ model.MethodName = T("Plugins.Payments.PayPalInstalments.ShortMethodName"); } else { model.MethodName = _pluginMediator.GetLocalizedFriendlyName(provider.Metadata).NullEmpty() ?? provider.Metadata.FriendlyName.NullEmpty() ?? provider.Metadata.SystemName; } model.MethodName = model.MethodName.EmptyNull(); if (settings.DisplayPaymentMethodDescription) { // Not the short description, the full description is intended for frontend. var paymentMethod = _paymentService.GetPaymentMethodBySystemName(provider.Metadata.SystemName); if (paymentMethod != null) { string description = paymentMethod.GetLocalized(x => x.FullDescription); if (description.HasValue()) { description = HtmlUtils.ConvertHtmlToPlainText(description); description = HtmlUtils.StripTags(HttpUtility.HtmlDecode(description)); if (description.HasValue()) { model.Description = description.EncodeJsString(); } } } } } catch { } try { if (settings.DisplayPaymentMethodLogo && provider.Metadata.PluginDescriptor != null && store.SslEnabled) { // Special case PayPal instalments. if (provider.Metadata.SystemName == PayPalInstalmentsProvider.SystemName && model.ImageUrl.IsEmpty()) { var uri = new UriBuilder(Uri.UriSchemeHttps, Request.Url.Host, -1, "Plugins/SmartStore.PayPal/Content/instalments-sm.png"); model.ImageUrl = uri.ToString(); } else { var brandImageUrl = _pluginMediator.GetBrandImageUrl(provider.Metadata); if (brandImageUrl.HasValue()) { if (brandImageUrl.StartsWith("~")) { brandImageUrl = brandImageUrl.Substring(1); } var uri = new UriBuilder(Uri.UriSchemeHttps, Request.Url.Host, -1, brandImageUrl); model.ImageUrl = uri.ToString(); } } } } catch { } return(model); }