mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-18 06:24:24 +01:00
Checkout v2 (#4157)
* Opt-in for new checkout * Update wording * Create invoice view update * Remove jQuery from checkout testing code * Checkout v2 basics * WIP * WIP 2 * Updates and fixes * Updates * Design updates * More design updates * Cheating and JS fixes * Use checkout form id whenever invoices get created * Improve email form handling * Cleanups * Payment method exclusion cases for Lightning and LNURL TODO: Cases and implementation need to be discussed * Introduce CheckoutType in API and replace UseNewCheckout in backend Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
This commit is contained in:
@@ -365,20 +365,11 @@ namespace BTCPayServer.Controllers
|
||||
.Where(s => s.PaymentId.PaymentType != PaymentTypes.LNURLPay)
|
||||
.Select(method =>
|
||||
{
|
||||
var existing =
|
||||
storeBlob.PaymentMethodCriteria.SingleOrDefault(criteria =>
|
||||
var existing = storeBlob.PaymentMethodCriteria.SingleOrDefault(criteria =>
|
||||
criteria.PaymentMethod == method.PaymentId);
|
||||
if (existing is null)
|
||||
{
|
||||
return new PaymentMethodCriteriaViewModel()
|
||||
{
|
||||
PaymentMethod = method.PaymentId.ToString(),
|
||||
Value = ""
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
return new PaymentMethodCriteriaViewModel()
|
||||
return existing is null
|
||||
? new PaymentMethodCriteriaViewModel { PaymentMethod = method.PaymentId.ToString(), Value = "" }
|
||||
: new PaymentMethodCriteriaViewModel
|
||||
{
|
||||
PaymentMethod = existing.PaymentMethod.ToString(),
|
||||
Type = existing.Above
|
||||
@@ -386,9 +377,11 @@ namespace BTCPayServer.Controllers
|
||||
: PaymentMethodCriteriaViewModel.CriteriaType.LessThan,
|
||||
Value = existing.Value?.ToString() ?? ""
|
||||
};
|
||||
}
|
||||
}).ToList();
|
||||
|
||||
vm.UseNewCheckout = storeBlob.CheckoutType == Client.Models.CheckoutType.V2;
|
||||
vm.CheckoutFormId = storeBlob.CheckoutFormId;
|
||||
vm.OnChainWithLnInvoiceFallback = storeBlob.OnChainWithLnInvoiceFallback;
|
||||
vm.RequiresRefundEmail = storeBlob.RequiresRefundEmail;
|
||||
vm.LazyPaymentMethods = storeBlob.LazyPaymentMethods;
|
||||
vm.RedirectAutomatically = storeBlob.RedirectAutomatically;
|
||||
@@ -504,6 +497,14 @@ namespace BTCPayServer.Controllers
|
||||
PaymentMethod = paymentMethodId
|
||||
});
|
||||
}
|
||||
|
||||
blob.CheckoutType = model.UseNewCheckout ? Client.Models.CheckoutType.V2 : Client.Models.CheckoutType.V1;
|
||||
if (blob.CheckoutType == Client.Models.CheckoutType.V2)
|
||||
{
|
||||
blob.CheckoutFormId = model.CheckoutFormId;
|
||||
blob.OnChainWithLnInvoiceFallback = model.OnChainWithLnInvoiceFallback;
|
||||
}
|
||||
|
||||
blob.RequiresRefundEmail = model.RequiresRefundEmail;
|
||||
blob.LazyPaymentMethods = model.LazyPaymentMethods;
|
||||
blob.RedirectAutomatically = model.RedirectAutomatically;
|
||||
|
||||
Reference in New Issue
Block a user