mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-20 13:34:37 +01:00
Rename PaymentModel to CheckoutModel
This commit is contained in:
parent
2f287874e3
commit
968223a953
25 changed files with 75 additions and 97 deletions
|
@ -320,7 +320,7 @@ namespace BTCPayServer.Tests
|
|||
|
||||
var controller = tester.PayTester.GetController<UIInvoiceController>(null);
|
||||
var checkout =
|
||||
(Models.InvoicingModels.PaymentModel)((JsonResult)controller.GetStatus(invoice.Id)
|
||||
(Models.InvoicingModels.CheckoutModel)((JsonResult)controller.GetStatus(invoice.Id)
|
||||
.GetAwaiter().GetResult()).Value;
|
||||
Assert.Single(checkout.AvailableCryptos);
|
||||
Assert.Equal("LTC", checkout.PaymentMethodCurrency);
|
||||
|
@ -337,7 +337,7 @@ namespace BTCPayServer.Tests
|
|||
{
|
||||
invoice = user.BitPay.GetInvoice(invoice.Id);
|
||||
Assert.Equal("paid", invoice.Status);
|
||||
checkout = (Models.InvoicingModels.PaymentModel)((JsonResult)controller.GetStatus(invoice.Id)
|
||||
checkout = (Models.InvoicingModels.CheckoutModel)((JsonResult)controller.GetStatus(invoice.Id)
|
||||
.GetAwaiter().GetResult()).Value;
|
||||
Assert.Equal("Processing", checkout.Status);
|
||||
});
|
||||
|
@ -475,7 +475,7 @@ namespace BTCPayServer.Tests
|
|||
|
||||
var controller = tester.PayTester.GetController<UIInvoiceController>(null);
|
||||
var checkout =
|
||||
(Models.InvoicingModels.PaymentModel)((JsonResult)controller.GetStatus(invoice.Id, null)
|
||||
(Models.InvoicingModels.CheckoutModel)((JsonResult)controller.GetStatus(invoice.Id, null)
|
||||
.GetAwaiter().GetResult()).Value;
|
||||
Assert.Single(checkout.AvailableCryptos);
|
||||
Assert.Equal("BTC", checkout.PaymentMethodCurrency);
|
||||
|
@ -536,7 +536,7 @@ namespace BTCPayServer.Tests
|
|||
});
|
||||
|
||||
controller = tester.PayTester.GetController<UIInvoiceController>(null);
|
||||
checkout = (Models.InvoicingModels.PaymentModel)((JsonResult)controller.GetStatus(invoice.Id, "LTC")
|
||||
checkout = (Models.InvoicingModels.CheckoutModel)((JsonResult)controller.GetStatus(invoice.Id, "LTC")
|
||||
.GetAwaiter().GetResult()).Value;
|
||||
Assert.Equal(2, checkout.AvailableCryptos.Count);
|
||||
Assert.Equal("LTC", checkout.PaymentMethodCurrency);
|
||||
|
|
|
@ -2733,7 +2733,7 @@ namespace BTCPayServer.Tests
|
|||
|
||||
Assert.EndsWith($"/i/{newInvoice.Id}", newInvoice.CheckoutLink);
|
||||
var controller = tester.PayTester.GetController<UIInvoiceController>(user.UserId, user.StoreId);
|
||||
var model = (PaymentModel)((ViewResult)await controller.Checkout(newInvoice.Id)).Model;
|
||||
var model = (CheckoutModel)((ViewResult)await controller.Checkout(newInvoice.Id)).Model;
|
||||
Assert.Equal("it-IT", model.DefaultLang);
|
||||
Assert.Equal("http://toto.com/lol", model.MerchantRefLink);
|
||||
|
||||
|
|
|
@ -1587,14 +1587,14 @@ namespace BTCPayServer.Tests
|
|||
ItemDesc = "Some description",
|
||||
FullNotifications = true
|
||||
}, Facade.Merchant);
|
||||
var checkout = (await user.GetController<UIInvoiceController>().Checkout(invoice.Id)).AssertViewModel<PaymentModel>();
|
||||
var checkout = (await user.GetController<UIInvoiceController>().Checkout(invoice.Id)).AssertViewModel<CheckoutModel>();
|
||||
Assert.Equal(lnMethod, checkout.PaymentMethodId);
|
||||
|
||||
// If we change store's default, it should change the checkout's default
|
||||
vm.DefaultPaymentMethod = btcMethod;
|
||||
Assert.IsType<RedirectToActionResult>(user.GetController<UIStoresController>().CheckoutAppearance(vm)
|
||||
.Result);
|
||||
checkout = (await user.GetController<UIInvoiceController>().Checkout(invoice.Id)).AssertViewModel<PaymentModel>();
|
||||
checkout = (await user.GetController<UIInvoiceController>().Checkout(invoice.Id)).AssertViewModel<CheckoutModel>();
|
||||
Assert.Equal(btcMethod, checkout.PaymentMethodId);
|
||||
}
|
||||
|
||||
|
@ -1625,7 +1625,7 @@ namespace BTCPayServer.Tests
|
|||
|
||||
// validate that invoice data model doesn't have lightning string initially
|
||||
var res = await user.GetController<UIInvoiceController>().Checkout(invoice.Id);
|
||||
var paymentMethodFirst = Assert.IsType<PaymentModel>(
|
||||
var paymentMethodFirst = Assert.IsType<CheckoutModel>(
|
||||
Assert.IsType<ViewResult>(res).Model
|
||||
);
|
||||
Assert.DoesNotContain("&lightning=", paymentMethodFirst.InvoiceBitcoinUrlQR);
|
||||
|
@ -1641,7 +1641,7 @@ namespace BTCPayServer.Tests
|
|||
|
||||
// validate that QR code now has both onchain and offchain payment urls
|
||||
res = await user.GetController<UIInvoiceController>().Checkout(invoice.Id);
|
||||
var paymentMethodUnified = Assert.IsType<PaymentModel>(
|
||||
var paymentMethodUnified = Assert.IsType<CheckoutModel>(
|
||||
Assert.IsType<ViewResult>(res).Model
|
||||
);
|
||||
Assert.StartsWith("bitcoin:bcrt", paymentMethodUnified.InvoiceBitcoinUrl);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@using BTCPayServer.Payments
|
||||
@model BTCPayServer.Components.InvoiceStatus.InvoiceStatusViewModel
|
||||
@inject Dictionary<PaymentMethodId, IPaymentModelExtension> Extensions
|
||||
@inject Dictionary<PaymentMethodId, ICheckoutModelExtension> Extensions
|
||||
|
||||
@{
|
||||
var state = Model.State.ToString();
|
||||
|
|
|
@ -694,7 +694,7 @@ namespace BTCPayServer.Controllers
|
|||
if (invoiceId is null)
|
||||
return NotFound();
|
||||
|
||||
var model = await GetInvoiceModel(invoiceId, paymentMethodId == null ? null : PaymentMethodId.Parse(paymentMethodId), lang);
|
||||
var model = await GetCheckoutModel(invoiceId, paymentMethodId == null ? null : PaymentMethodId.Parse(paymentMethodId), lang);
|
||||
if (model == null)
|
||||
{
|
||||
// see if the invoice actually exists and is in a state for which we do not display the checkout
|
||||
|
@ -713,7 +713,7 @@ namespace BTCPayServer.Controllers
|
|||
return View(model);
|
||||
}
|
||||
|
||||
private async Task<PaymentModel?> GetInvoiceModel(string invoiceId, PaymentMethodId? paymentMethodId, string? lang)
|
||||
private async Task<CheckoutModel?> GetCheckoutModel(string invoiceId, PaymentMethodId? paymentMethodId, string? lang)
|
||||
{
|
||||
var invoice = await _InvoiceRepository.GetInvoice(invoiceId);
|
||||
if (invoice == null)
|
||||
|
@ -822,7 +822,7 @@ namespace BTCPayServer.Controllers
|
|||
if (prompt is null)
|
||||
return null;
|
||||
if (activated)
|
||||
return await GetInvoiceModel(invoiceId, paymentMethodId, lang);
|
||||
return await GetCheckoutModel(invoiceId, paymentMethodId, lang);
|
||||
|
||||
var accounting = prompt.Calculate();
|
||||
|
||||
|
@ -863,7 +863,7 @@ namespace BTCPayServer.Controllers
|
|||
}
|
||||
|
||||
string ShowMoney(decimal value) => MoneyExtensions.ShowMoney(value, prompt.RateDivisibility ?? prompt.Divisibility);
|
||||
var model = new PaymentModel
|
||||
var model = new CheckoutModel
|
||||
{
|
||||
Activated = prompt.Activated,
|
||||
PaymentMethodName = _prettyName.PrettyName(paymentMethodId),
|
||||
|
@ -914,7 +914,7 @@ namespace BTCPayServer.Controllers
|
|||
.Select(kv =>
|
||||
{
|
||||
var handler = _handlers[kv.PaymentMethodId];
|
||||
return new PaymentModel.AvailableCrypto
|
||||
return new CheckoutModel.AvailableCrypto
|
||||
{
|
||||
Displayed = displayedPaymentMethods.Contains(kv.PaymentMethodId),
|
||||
PaymentMethodId = kv.PaymentMethodId,
|
||||
|
@ -950,7 +950,7 @@ namespace BTCPayServer.Controllers
|
|||
if (_paymentModelExtensions.TryGetValue(paymentMethodId, out var extension) &&
|
||||
_handlers.TryGetValue(paymentMethodId, out var h))
|
||||
{
|
||||
extension.ModifyPaymentModel(new PaymentModelContext(model, store, storeBlob, invoice, Url, prompt, h));
|
||||
extension.ModifyCheckoutModel(new CheckoutModelContext(model, store, storeBlob, invoice, Url, prompt, h));
|
||||
}
|
||||
return model;
|
||||
}
|
||||
|
@ -987,7 +987,7 @@ namespace BTCPayServer.Controllers
|
|||
{
|
||||
if (string.IsNullOrEmpty(paymentMethodId))
|
||||
paymentMethodId = implicitPaymentMethodId;
|
||||
var model = await GetInvoiceModel(invoiceId, paymentMethodId == null ? null : PaymentMethodId.Parse(paymentMethodId), lang);
|
||||
var model = await GetCheckoutModel(invoiceId, paymentMethodId == null ? null : PaymentMethodId.Parse(paymentMethodId), lang);
|
||||
if (model == null)
|
||||
return NotFound();
|
||||
return Json(model);
|
||||
|
|
|
@ -62,7 +62,7 @@ namespace BTCPayServer.Controllers
|
|||
private readonly LinkGenerator _linkGenerator;
|
||||
private readonly IAuthorizationService _authorizationService;
|
||||
private readonly TransactionLinkProviders _transactionLinkProviders;
|
||||
private readonly Dictionary<PaymentMethodId, IPaymentModelExtension> _paymentModelExtensions;
|
||||
private readonly Dictionary<PaymentMethodId, ICheckoutModelExtension> _paymentModelExtensions;
|
||||
private readonly PrettyNameProvider _prettyName;
|
||||
private readonly AppService _appService;
|
||||
private readonly IFileService _fileService;
|
||||
|
@ -97,7 +97,7 @@ namespace BTCPayServer.Controllers
|
|||
DefaultRulesCollection defaultRules,
|
||||
IAuthorizationService authorizationService,
|
||||
TransactionLinkProviders transactionLinkProviders,
|
||||
Dictionary<PaymentMethodId, IPaymentModelExtension> paymentModelExtensions,
|
||||
Dictionary<PaymentMethodId, ICheckoutModelExtension> paymentModelExtensions,
|
||||
PrettyNameProvider prettyName)
|
||||
{
|
||||
_displayFormatter = displayFormatter;
|
||||
|
|
|
@ -21,13 +21,13 @@ namespace BTCPayServer.Controllers
|
|||
public class UIPublicLightningNodeInfoController : Controller
|
||||
{
|
||||
private readonly BTCPayNetworkProvider _BtcPayNetworkProvider;
|
||||
private readonly Dictionary<PaymentMethodId, IPaymentModelExtension> _paymentModelExtensions;
|
||||
private readonly Dictionary<PaymentMethodId, ICheckoutModelExtension> _paymentModelExtensions;
|
||||
private readonly UriResolver _uriResolver;
|
||||
private readonly PaymentMethodHandlerDictionary _handlers;
|
||||
private readonly StoreRepository _StoreRepository;
|
||||
|
||||
public UIPublicLightningNodeInfoController(BTCPayNetworkProvider btcPayNetworkProvider,
|
||||
Dictionary<PaymentMethodId, IPaymentModelExtension> paymentModelExtensions,
|
||||
Dictionary<PaymentMethodId, ICheckoutModelExtension> paymentModelExtensions,
|
||||
UriResolver uriResolver,
|
||||
PaymentMethodHandlerDictionary handlers,
|
||||
StoreRepository storeRepository)
|
||||
|
|
|
@ -70,7 +70,7 @@ namespace BTCPayServer.Controllers
|
|||
private readonly LabelService _labelService;
|
||||
private readonly PaymentMethodHandlerDictionary _handlers;
|
||||
private readonly DefaultRulesCollection _defaultRules;
|
||||
private readonly Dictionary<PaymentMethodId, IPaymentModelExtension> _paymentModelExtensions;
|
||||
private readonly Dictionary<PaymentMethodId, ICheckoutModelExtension> _paymentModelExtensions;
|
||||
private readonly TransactionLinkProviders _transactionLinkProviders;
|
||||
private readonly PullPaymentHostedService _pullPaymentHostedService;
|
||||
private readonly WalletHistogramService _walletHistogramService;
|
||||
|
@ -98,7 +98,7 @@ namespace BTCPayServer.Controllers
|
|||
LabelService labelService,
|
||||
DefaultRulesCollection defaultRules,
|
||||
PaymentMethodHandlerDictionary handlers,
|
||||
Dictionary<PaymentMethodId, IPaymentModelExtension> paymentModelExtensions,
|
||||
Dictionary<PaymentMethodId, ICheckoutModelExtension> paymentModelExtensions,
|
||||
TransactionLinkProviders transactionLinkProviders)
|
||||
{
|
||||
_currencyTable = currencyTable;
|
||||
|
|
|
@ -390,8 +390,8 @@ namespace BTCPayServer.Hosting
|
|||
o.GetRequiredService<IEnumerable<IPaymentMethodBitpayAPIExtension>>().ToDictionary(o => o.PaymentMethodId, o => o));
|
||||
services.AddSingleton<Dictionary<PaymentMethodId, IPaymentLinkExtension>>(o =>
|
||||
o.GetRequiredService<IEnumerable<IPaymentLinkExtension>>().ToDictionary(o => o.PaymentMethodId, o => o));
|
||||
services.AddSingleton<Dictionary<PaymentMethodId, IPaymentModelExtension>>(o =>
|
||||
o.GetRequiredService<IEnumerable<IPaymentModelExtension>>().ToDictionary(o => o.PaymentMethodId, o => o));
|
||||
services.AddSingleton<Dictionary<PaymentMethodId, ICheckoutModelExtension>>(o =>
|
||||
o.GetRequiredService<IEnumerable<ICheckoutModelExtension>>().ToDictionary(o => o.PaymentMethodId, o => o));
|
||||
|
||||
services.AddHttpClient(LightningLikePayoutHandler.LightningLikePayoutHandlerOnionNamedClient)
|
||||
.ConfigurePrimaryHttpMessageHandler<Socks5HttpClientHandler>();
|
||||
|
@ -630,8 +630,8 @@ o.GetRequiredService<IEnumerable<IPaymentLinkExtension>>().ToDictionary(o => o.P
|
|||
(BitcoinLikePaymentHandler)ActivatorUtilities.CreateInstance(provider, typeof(BitcoinLikePaymentHandler), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentLinkExtension>(provider =>
|
||||
(IPaymentLinkExtension)ActivatorUtilities.CreateInstance(provider, typeof(BitcoinPaymentLinkExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentModelExtension>(provider =>
|
||||
(BitcoinPaymentModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(BitcoinPaymentModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<ICheckoutModelExtension>(provider =>
|
||||
(BitcoinCheckoutModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(BitcoinCheckoutModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentMethodBitpayAPIExtension>(provider =>
|
||||
(IPaymentMethodBitpayAPIExtension)ActivatorUtilities.CreateInstance(provider, typeof(BitcoinPaymentMethodBitpayAPIExtension), new object[] { pmi }));
|
||||
|
||||
|
@ -651,8 +651,8 @@ o.GetRequiredService<IEnumerable<IPaymentLinkExtension>>().ToDictionary(o => o.P
|
|||
(LightningLikePaymentHandler)ActivatorUtilities.CreateInstance(provider, typeof(LightningLikePaymentHandler), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentLinkExtension>(provider =>
|
||||
(IPaymentLinkExtension)ActivatorUtilities.CreateInstance(provider, typeof(LightningPaymentLinkExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentModelExtension>(provider =>
|
||||
(IPaymentModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(LightningPaymentModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<ICheckoutModelExtension>(provider =>
|
||||
(ICheckoutModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(LNCheckoutModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentMethodBitpayAPIExtension>(provider =>
|
||||
(IPaymentMethodBitpayAPIExtension)ActivatorUtilities.CreateInstance(provider, typeof(LightningPaymentMethodBitpayAPIExtension), new object[] { pmi }));
|
||||
var payoutMethodId = PayoutTypes.LN.GetPayoutMethodId(network.CryptoCode);
|
||||
|
@ -666,8 +666,8 @@ o.GetRequiredService<IEnumerable<IPaymentLinkExtension>>().ToDictionary(o => o.P
|
|||
(LNURLPayPaymentHandler)ActivatorUtilities.CreateInstance(provider, typeof(LNURLPayPaymentHandler), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentLinkExtension>(provider =>
|
||||
(IPaymentLinkExtension)ActivatorUtilities.CreateInstance(provider, typeof(LNURLPayPaymentLinkExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentModelExtension>(provider =>
|
||||
(IPaymentModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(LNURLPayPaymentModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<ICheckoutModelExtension>(provider =>
|
||||
(ICheckoutModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(LNURLCheckoutModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentMethodBitpayAPIExtension>(provider =>
|
||||
(IPaymentMethodBitpayAPIExtension)ActivatorUtilities.CreateInstance(provider, typeof(LNURLPayPaymentMethodBitpayAPIExtension), new object[] { pmi }));
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ using Newtonsoft.Json.Linq;
|
|||
|
||||
namespace BTCPayServer.Models.InvoicingModels
|
||||
{
|
||||
public class PaymentModel
|
||||
public class CheckoutModel
|
||||
{
|
||||
public string CheckoutBodyComponentName { get; set; }
|
||||
public class AvailableCrypto
|
|
@ -12,7 +12,7 @@ using NBitcoin.DataEncoders;
|
|||
|
||||
namespace BTCPayServer.Payments.Bitcoin
|
||||
{
|
||||
public class BitcoinPaymentModelExtension : IPaymentModelExtension
|
||||
public class BitcoinCheckoutModelExtension : ICheckoutModelExtension
|
||||
{
|
||||
public const string CheckoutBodyComponentName = "BitcoinCheckoutBody";
|
||||
private readonly PaymentMethodHandlerDictionary _handlers;
|
||||
|
@ -23,7 +23,7 @@ namespace BTCPayServer.Payments.Bitcoin
|
|||
private readonly IPaymentLinkExtension? lnurlPaymentLinkExtension;
|
||||
private readonly string? _bech32Prefix;
|
||||
|
||||
public BitcoinPaymentModelExtension(
|
||||
public BitcoinCheckoutModelExtension(
|
||||
PaymentMethodId paymentMethodId,
|
||||
BTCPayNetwork network,
|
||||
IEnumerable<IPaymentLinkExtension> paymentLinkExtensions,
|
||||
|
@ -45,7 +45,7 @@ namespace BTCPayServer.Payments.Bitcoin
|
|||
public string Image => _Network.CryptoImagePath;
|
||||
public string Badge => "";
|
||||
public PaymentMethodId PaymentMethodId { get; }
|
||||
public void ModifyPaymentModel(PaymentModelContext context)
|
||||
public void ModifyCheckoutModel(CheckoutModelContext context)
|
||||
{
|
||||
if (context is not { Handler: BitcoinLikePaymentHandler handler})
|
||||
return;
|
||||
|
@ -138,7 +138,7 @@ namespace BTCPayServer.Payments.Bitcoin
|
|||
}
|
||||
}
|
||||
|
||||
public static void PreparePaymentModelForAmountInSats(PaymentModel model, decimal rate, DisplayFormatter displayFormatter)
|
||||
public static void PreparePaymentModelForAmountInSats(CheckoutModel model, decimal rate, DisplayFormatter displayFormatter)
|
||||
{
|
||||
var satoshiCulture = new CultureInfo(CultureInfo.InvariantCulture.Name)
|
||||
{
|
|
@ -4,20 +4,20 @@ using Microsoft.AspNetCore.Mvc;
|
|||
|
||||
namespace BTCPayServer.Payments
|
||||
{
|
||||
public record PaymentModelContext(
|
||||
PaymentModel Model,
|
||||
public record CheckoutModelContext(
|
||||
CheckoutModel Model,
|
||||
Data.StoreData Store,
|
||||
Data.StoreBlob StoreBlob,
|
||||
InvoiceEntity InvoiceEntity,
|
||||
IUrlHelper UrlHelper,
|
||||
PaymentPrompt Prompt,
|
||||
IPaymentMethodHandler Handler);
|
||||
public interface IPaymentModelExtension
|
||||
public interface ICheckoutModelExtension
|
||||
{
|
||||
public PaymentMethodId PaymentMethodId { get; }
|
||||
string DisplayName { get; }
|
||||
string Image { get; }
|
||||
string Badge { get; }
|
||||
void ModifyPaymentModel(PaymentModelContext context);
|
||||
void ModifyCheckoutModel(CheckoutModelContext context);
|
||||
}
|
||||
}
|
|
@ -8,9 +8,9 @@ using NBitcoin;
|
|||
|
||||
namespace BTCPayServer.Payments.LNURLPay
|
||||
{
|
||||
public class LNURLPayPaymentModelExtension : IPaymentModelExtension
|
||||
public class LNURLCheckoutModelExtension : ICheckoutModelExtension
|
||||
{
|
||||
public LNURLPayPaymentModelExtension(
|
||||
public LNURLCheckoutModelExtension(
|
||||
PaymentMethodId paymentMethodId,
|
||||
BTCPayNetwork network,
|
||||
DisplayFormatter displayFormatter,
|
||||
|
@ -37,7 +37,7 @@ namespace BTCPayServer.Payments.LNURLPay
|
|||
public string Badge => "⚡";
|
||||
|
||||
private const string UriScheme = "lightning:";
|
||||
public void ModifyPaymentModel(PaymentModelContext context)
|
||||
public void ModifyCheckoutModel(CheckoutModelContext context)
|
||||
{
|
||||
if (context is not { Handler: LNURLPayPaymentHandler handler })
|
||||
return;
|
||||
|
@ -48,11 +48,11 @@ namespace BTCPayServer.Payments.LNURLPay
|
|||
context.Model.InvoiceBitcoinUrl = lnurl;
|
||||
context.Model.InvoiceBitcoinUrlQR = lnurl.ToUpperInvariant().Replace(UriScheme.ToUpperInvariant(), UriScheme);
|
||||
}
|
||||
context.Model.CheckoutBodyComponentName = LightningPaymentModelExtension.CheckoutBodyComponentName;
|
||||
context.Model.CheckoutBodyComponentName = LNCheckoutModelExtension.CheckoutBodyComponentName;
|
||||
context.Model.PeerInfo = handler.ParsePaymentPromptDetails(context.Prompt.Details).NodeInfo;
|
||||
if (context.StoreBlob.LightningAmountInSatoshi && context.Model.PaymentMethodCurrency == "BTC")
|
||||
{
|
||||
BitcoinPaymentModelExtension.PreparePaymentModelForAmountInSats(context.Model, context.Prompt.Rate, _displayFormatter);
|
||||
BitcoinCheckoutModelExtension.PreparePaymentModelForAmountInSats(context.Model, context.Prompt.Rate, _displayFormatter);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -9,12 +9,12 @@ using System.Linq;
|
|||
|
||||
namespace BTCPayServer.Payments.Lightning
|
||||
{
|
||||
public class LightningPaymentModelExtension : IPaymentModelExtension
|
||||
public class LNCheckoutModelExtension : ICheckoutModelExtension
|
||||
{
|
||||
public const string CheckoutBodyComponentName = "LightningCheckoutBody";
|
||||
private readonly DisplayFormatter _displayFormatter;
|
||||
IPaymentLinkExtension _PaymentLinkExtension;
|
||||
public LightningPaymentModelExtension(
|
||||
public LNCheckoutModelExtension(
|
||||
PaymentMethodId paymentMethodId,
|
||||
BTCPayNetwork network,
|
||||
DisplayFormatter displayFormatter,
|
||||
|
@ -38,7 +38,7 @@ namespace BTCPayServer.Payments.Lightning
|
|||
|
||||
public string Image => Network.LightningImagePath;
|
||||
public string Badge => "⚡";
|
||||
public void ModifyPaymentModel(PaymentModelContext context)
|
||||
public void ModifyCheckoutModel(CheckoutModelContext context)
|
||||
{
|
||||
if (context is not { Handler: LightningLikePaymentHandler handler })
|
||||
return;
|
||||
|
@ -52,7 +52,7 @@ namespace BTCPayServer.Payments.Lightning
|
|||
context.Model.PeerInfo = handler.ParsePaymentPromptDetails(paymentPrompt.Details).NodeInfo;
|
||||
if (context.StoreBlob.LightningAmountInSatoshi && context.Model.PaymentMethodCurrency == "BTC")
|
||||
{
|
||||
BitcoinPaymentModelExtension.PreparePaymentModelForAmountInSats(context.Model, paymentPrompt.Rate, _displayFormatter);
|
||||
BitcoinCheckoutModelExtension.PreparePaymentModelForAmountInSats(context.Model, paymentPrompt.Rate, _displayFormatter);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -67,8 +67,8 @@ public partial class AltcoinsPlugin
|
|||
(IPaymentMethodHandler)ActivatorUtilities.CreateInstance(provider, typeof(MoneroLikePaymentMethodHandler), new object[] { network }));
|
||||
services.AddSingleton<IPaymentLinkExtension>(provider =>
|
||||
(IPaymentLinkExtension)ActivatorUtilities.CreateInstance(provider, typeof(MoneroPaymentLinkExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentModelExtension>(provider =>
|
||||
(IPaymentModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(MoneroPaymentModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<ICheckoutModelExtension>(provider =>
|
||||
(ICheckoutModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(MoneroCheckoutModelExtension), new object[] { network, pmi }));
|
||||
|
||||
services.AddSingleton<IUIExtension>(new UIExtension("Monero/StoreNavMoneroExtension", "store-nav"));
|
||||
services.AddSingleton<IUIExtension>(new UIExtension("Monero/StoreWalletsNavMoneroExtension", "store-wallets-nav"));
|
||||
|
|
|
@ -56,8 +56,8 @@ public partial class AltcoinsPlugin
|
|||
(IPaymentMethodHandler)ActivatorUtilities.CreateInstance(provider, typeof(ZcashLikePaymentMethodHandler), new object[] { network }));
|
||||
services.AddSingleton<IPaymentLinkExtension>(provider =>
|
||||
(IPaymentLinkExtension)ActivatorUtilities.CreateInstance(provider, typeof(ZcashPaymentLinkExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<IPaymentModelExtension>(provider =>
|
||||
(IPaymentModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(ZcashPaymentModelExtension), new object[] { network, pmi }));
|
||||
services.AddSingleton<ICheckoutModelExtension>(provider =>
|
||||
(ICheckoutModelExtension)ActivatorUtilities.CreateInstance(provider, typeof(ZcashCheckoutModelExtension), new object[] { network, pmi }));
|
||||
|
||||
services.AddSingleton<ZcashLikePaymentMethodHandler>();
|
||||
services.AddSingleton<IPaymentMethodHandler>(provider => provider.GetRequiredService<ZcashLikePaymentMethodHandler>());
|
||||
|
|
|
@ -8,13 +8,13 @@ using BTCPayServer.Services.Invoices;
|
|||
|
||||
namespace BTCPayServer.Services.Altcoins.Monero.Payments
|
||||
{
|
||||
public class MoneroPaymentModelExtension : IPaymentModelExtension
|
||||
public class MoneroCheckoutModelExtension : ICheckoutModelExtension
|
||||
{
|
||||
private readonly BTCPayNetworkBase _network;
|
||||
private readonly PaymentMethodHandlerDictionary _handlers;
|
||||
private readonly IPaymentLinkExtension paymentLinkExtension;
|
||||
|
||||
public MoneroPaymentModelExtension(
|
||||
public MoneroCheckoutModelExtension(
|
||||
PaymentMethodId paymentMethodId,
|
||||
IEnumerable<IPaymentLinkExtension> paymentLinkExtensions,
|
||||
BTCPayNetworkBase network,
|
||||
|
@ -32,11 +32,11 @@ namespace BTCPayServer.Services.Altcoins.Monero.Payments
|
|||
public string Image => _network.CryptoImagePath;
|
||||
public string Badge => "";
|
||||
|
||||
public void ModifyPaymentModel(PaymentModelContext context)
|
||||
public void ModifyCheckoutModel(CheckoutModelContext context)
|
||||
{
|
||||
if (context is not { Handler: MoneroLikePaymentMethodHandler handler })
|
||||
return;
|
||||
context.Model.CheckoutBodyComponentName = BitcoinPaymentModelExtension.CheckoutBodyComponentName;
|
||||
context.Model.CheckoutBodyComponentName = BitcoinCheckoutModelExtension.CheckoutBodyComponentName;
|
||||
if (context.Model.Activated)
|
||||
{
|
||||
var details = context.InvoiceEntity.GetPayments(true)
|
|
@ -8,13 +8,13 @@ using BTCPayServer.Services.Invoices;
|
|||
|
||||
namespace BTCPayServer.Services.Altcoins.Zcash.Payments
|
||||
{
|
||||
public class ZcashPaymentModelExtension : IPaymentModelExtension
|
||||
public class ZcashCheckoutModelExtension : ICheckoutModelExtension
|
||||
{
|
||||
private readonly BTCPayNetworkBase _network;
|
||||
private readonly PaymentMethodHandlerDictionary _handlers;
|
||||
private readonly IPaymentLinkExtension paymentLinkExtension;
|
||||
|
||||
public ZcashPaymentModelExtension(
|
||||
public ZcashCheckoutModelExtension(
|
||||
PaymentMethodId paymentMethodId,
|
||||
IEnumerable<IPaymentLinkExtension> paymentLinkExtensions,
|
||||
BTCPayNetworkBase network,
|
||||
|
@ -32,11 +32,11 @@ namespace BTCPayServer.Services.Altcoins.Zcash.Payments
|
|||
public string Image => _network.CryptoImagePath;
|
||||
public string Badge => "";
|
||||
|
||||
public void ModifyPaymentModel(PaymentModelContext context)
|
||||
public void ModifyCheckoutModel(CheckoutModelContext context)
|
||||
{
|
||||
if (context is not { Handler: ZcashLikePaymentMethodHandler handler })
|
||||
return;
|
||||
context.Model.CheckoutBodyComponentName = BitcoinPaymentModelExtension.CheckoutBodyComponentName;
|
||||
context.Model.CheckoutBodyComponentName = BitcoinCheckoutModelExtension.CheckoutBodyComponentName;
|
||||
if (context.Model.Activated)
|
||||
{
|
||||
var details = context.InvoiceEntity.GetPayments(true)
|
|
@ -6,9 +6,9 @@ namespace BTCPayServer.Services
|
|||
{
|
||||
public class PrettyNameProvider
|
||||
{
|
||||
private readonly Dictionary<PaymentMethodId, IPaymentModelExtension> _extensions;
|
||||
private readonly Dictionary<PaymentMethodId, ICheckoutModelExtension> _extensions;
|
||||
|
||||
public PrettyNameProvider(Dictionary<PaymentMethodId, IPaymentModelExtension> extensions)
|
||||
public PrettyNameProvider(Dictionary<PaymentMethodId, ICheckoutModelExtension> extensions)
|
||||
{
|
||||
_extensions = extensions;
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
@using BTCPayServer.Components.TruncateCenter
|
||||
@using BTCPayServer.Abstractions.TagHelpers
|
||||
@using BTCPayServer.Payments.Bitcoin
|
||||
@model BTCPayServer.Models.InvoicingModels.PaymentModel
|
||||
@model BTCPayServer.Models.InvoicingModels.CheckoutModel
|
||||
|
||||
<template id="@BitcoinPaymentModelExtension.CheckoutBodyComponentName">
|
||||
<template id="@BitcoinCheckoutModelExtension.CheckoutBodyComponentName">
|
||||
@await Component.InvokeAsync("UiExtensionPoint", new {location = "checkout-bitcoin-pre-content", model = Model})
|
||||
<div class="payment-box">
|
||||
<div v-if="model.invoiceBitcoinUrlQR" class="qr-container" :data-qr-value="model.invoiceBitcoinUrlQR" :data-clipboard="model.invoiceBitcoinUrl" data-clipboard-confirm-element="#Address_@Model.PaymentMethodId [data-clipboard]">
|
||||
|
@ -32,9 +32,9 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
Vue.component(@Safe.Json(BitcoinPaymentModelExtension.CheckoutBodyComponentName), {
|
||||
Vue.component(@Safe.Json(BitcoinCheckoutModelExtension.CheckoutBodyComponentName), {
|
||||
props: ['model', 'nfcSupported', 'nfcScanning', 'nfcErrorMessage'],
|
||||
template: @Safe.Json("#" + BitcoinPaymentModelExtension.CheckoutBodyComponentName),
|
||||
template: @Safe.Json("#" + BitcoinCheckoutModelExtension.CheckoutBodyComponentName),
|
||||
components: {
|
||||
qrcode: VueQrcode
|
||||
},
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
@using BTCPayServer.Payments.Lightning
|
||||
@model BTCPayServer.Models.InvoicingModels.PaymentModel
|
||||
@model BTCPayServer.Models.InvoicingModels.CheckoutModel
|
||||
|
||||
<template id="@LightningPaymentModelExtension.CheckoutBodyComponentName">
|
||||
<template id="@LNCheckoutModelExtension.CheckoutBodyComponentName">
|
||||
<div class="payment-box">
|
||||
@await Component.InvokeAsync("UiExtensionPoint" , new { location="checkout-lightning-pre-content", model = Model})
|
||||
<div v-if="model.invoiceBitcoinUrlQR" class="qr-container" :data-qr-value="model.invoiceBitcoinUrlQR" :data-clipboard="model.invoiceBitcoinUrl" data-clipboard-confirm-element="#Lightning_@Model.PaymentMethodId [data-clipboard]">
|
||||
|
@ -24,9 +24,9 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
Vue.component(@Safe.Json(LightningPaymentModelExtension.CheckoutBodyComponentName), {
|
||||
Vue.component(@Safe.Json(LNCheckoutModelExtension.CheckoutBodyComponentName), {
|
||||
props: ['model', 'nfcSupported', 'nfcScanning', 'nfcErrorMessage'],
|
||||
template: @Safe.Json("#" + LightningPaymentModelExtension.CheckoutBodyComponentName),
|
||||
template: @Safe.Json("#" + LNCheckoutModelExtension.CheckoutBodyComponentName),
|
||||
components: {
|
||||
qrcode: VueQrcode
|
||||
},
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@model PaymentModel
|
||||
@model CheckoutModel
|
||||
|
||||
<style>
|
||||
#checkout-cheating form + form { margin-top: var(--btcpay-space-l); }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@model PaymentModel
|
||||
@model CheckoutModel
|
||||
|
||||
<div id="testing">
|
||||
<hr class="my-3" />
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
@inject IEnumerable<IUIExtension> UiExtensions
|
||||
@inject PaymentMethodHandlerDictionary PaymentMethodHandlerDictionary
|
||||
@inject BTCPayServer.Security.ContentSecurityPolicies Csp
|
||||
@model PaymentModel
|
||||
@model CheckoutModel
|
||||
@{
|
||||
Layout = null;
|
||||
ViewData["Title"] = Model.HtmlTitle;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@model PaymentModel
|
||||
@model CheckoutModel
|
||||
@{
|
||||
Layout = null;
|
||||
var displayedPaymentMethods = Model.AvailableCryptos.Where(a => a.Displayed).ToList();
|
||||
|
@ -18,28 +18,6 @@
|
|||
@if (Model.Status == "new")
|
||||
{
|
||||
<h1 class="text-danger">This payment method requires javascript.</h1>
|
||||
@if (displayedPaymentMethods.Count > 1)
|
||||
{
|
||||
<div>
|
||||
<hr />
|
||||
<h2>Pay with:</h2>
|
||||
<ul style="list-style-type: none;padding-left: 5px;">
|
||||
@foreach (var crypto in displayedPaymentMethods)
|
||||
{
|
||||
<li style="height: 32px; line-height: 32px;">
|
||||
<a asp-action="CheckoutNoScript" asp-route-invoiceId="@Model.InvoiceId" asp-route-paymentMethodId="@crypto.PaymentMethodId">
|
||||
<img alt="@crypto.PaymentMethodName" src="@crypto.CryptoImage" style="vertical-align:middle; height:24px; text-decoration:none; margin-top: -3px;" asp-append-version="true" />
|
||||
</a>
|
||||
<a asp-action="CheckoutNoScript" asp-route-invoiceId="@Model.InvoiceId" asp-route-paymentMethodId="@crypto.PaymentMethodId" style="padding-top: 2px;">
|
||||
@crypto.PaymentMethodName
|
||||
@(crypto.IsLightning ? Html.Raw("⚡") : null)
|
||||
(@crypto.CryptoCode)
|
||||
</a>
|
||||
</li>
|
||||
}
|
||||
</ul>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
else if (Model.Status == "paid" || Model.Status == "complete" || Model.Status == "confirmed")
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue