mirror of
https://github.com/aljazceru/btcpayserver.git
synced 2025-12-17 22:14:26 +01:00
LNURL Payment Method Support (#2897)
* LNURL Payment Method Support * Merge recent Lightning controller related changes * Fix build * Create separate payment settings section for stores * Improve LNURL configuration * Prevent duplicate array entries when merging Swagger JSON * Fix CanSetPaymentMethodLimitsLightning * Fix CanUsePayjoinViaUI * Adapt test for new cancel bolt invoice feature * rebase fixes * Fixes after rebase * Test fixes * Do not turn LNURL on by default, Off-Chain payment criteria should affects both BOLT11 and LNURL, Payment criteria of unset payment method shouldn't be shown * Send better error if payment method not found * Revert "Prevent duplicate array entries when merging Swagger JSON" This reverts commit 5783db9eda17c29908a60fdef2c3ebe130a8b059. * Fix LNUrl doc * Fix some warnings Co-authored-by: Dennis Reimann <mail@dennisreimann.de> Co-authored-by: nicolas.dorier <nicolas.dorier@gmail.com>
This commit is contained in:
@@ -17,7 +17,6 @@ using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Options;
|
||||
using NBitcoin;
|
||||
using NBXplorer.Models;
|
||||
using YamlDotNet.Core.Tokens;
|
||||
using InvoiceData = BTCPayServer.Client.Models.InvoiceData;
|
||||
using Language = BTCPayServer.Client.Models.Language;
|
||||
using NotificationData = BTCPayServer.Client.Models.NotificationData;
|
||||
@@ -37,6 +36,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
private readonly StoreOnChainPaymentMethodsController _chainPaymentMethodsController;
|
||||
private readonly StoreOnChainWalletsController _storeOnChainWalletsController;
|
||||
private readonly StoreLightningNetworkPaymentMethodsController _storeLightningNetworkPaymentMethodsController;
|
||||
private readonly StoreLNURLPayPaymentMethodsController _storeLnurlPayPaymentMethodsController;
|
||||
private readonly HealthController _healthController;
|
||||
private readonly GreenFieldPaymentRequestsController _paymentRequestController;
|
||||
private readonly ApiKeysController _apiKeysController;
|
||||
@@ -58,6 +58,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
StoreOnChainPaymentMethodsController chainPaymentMethodsController,
|
||||
StoreOnChainWalletsController storeOnChainWalletsController,
|
||||
StoreLightningNetworkPaymentMethodsController storeLightningNetworkPaymentMethodsController,
|
||||
StoreLNURLPayPaymentMethodsController storeLnurlPayPaymentMethodsController,
|
||||
HealthController healthController,
|
||||
GreenFieldPaymentRequestsController paymentRequestController,
|
||||
ApiKeysController apiKeysController,
|
||||
@@ -79,6 +80,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
_chainPaymentMethodsController = chainPaymentMethodsController;
|
||||
_storeOnChainWalletsController = storeOnChainWalletsController;
|
||||
_storeLightningNetworkPaymentMethodsController = storeLightningNetworkPaymentMethodsController;
|
||||
_storeLnurlPayPaymentMethodsController = storeLnurlPayPaymentMethodsController;
|
||||
_healthController = healthController;
|
||||
_paymentRequestController = paymentRequestController;
|
||||
_apiKeysController = apiKeysController;
|
||||
@@ -141,6 +143,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
_storeLightningNodeApiController,
|
||||
_internalLightningNodeApiController,
|
||||
_storeLightningNetworkPaymentMethodsController,
|
||||
_storeLnurlPayPaymentMethodsController,
|
||||
_greenFieldInvoiceController,
|
||||
_greenFieldServerInfoController,
|
||||
_storeWebhooksController,
|
||||
@@ -165,6 +168,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
private readonly StoreLightningNodeApiController _storeLightningNodeApiController;
|
||||
private readonly InternalLightningNodeApiController _lightningNodeApiController;
|
||||
private readonly StoreLightningNetworkPaymentMethodsController _storeLightningNetworkPaymentMethodsController;
|
||||
private readonly StoreLNURLPayPaymentMethodsController _storeLnurlPayPaymentMethodsController;
|
||||
private readonly GreenFieldInvoiceController _greenFieldInvoiceController;
|
||||
private readonly GreenFieldServerInfoController _greenFieldServerInfoController;
|
||||
private readonly StoreWebhooksController _storeWebhooksController;
|
||||
@@ -183,6 +187,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
StoreLightningNodeApiController storeLightningNodeApiController,
|
||||
InternalLightningNodeApiController lightningNodeApiController,
|
||||
StoreLightningNetworkPaymentMethodsController storeLightningNetworkPaymentMethodsController,
|
||||
StoreLNURLPayPaymentMethodsController storeLnurlPayPaymentMethodsController,
|
||||
GreenFieldInvoiceController greenFieldInvoiceController,
|
||||
GreenFieldServerInfoController greenFieldServerInfoController,
|
||||
StoreWebhooksController storeWebhooksController,
|
||||
@@ -202,6 +207,7 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
_storeLightningNodeApiController = storeLightningNodeApiController;
|
||||
_lightningNodeApiController = lightningNodeApiController;
|
||||
_storeLightningNetworkPaymentMethodsController = storeLightningNetworkPaymentMethodsController;
|
||||
_storeLnurlPayPaymentMethodsController = storeLnurlPayPaymentMethodsController;
|
||||
_greenFieldInvoiceController = greenFieldInvoiceController;
|
||||
_greenFieldServerInfoController = greenFieldServerInfoController;
|
||||
_storeWebhooksController = storeWebhooksController;
|
||||
@@ -746,7 +752,39 @@ namespace BTCPayServer.Controllers.GreenField
|
||||
{
|
||||
return GetFromActionResult<StoreData>(await _storesController.UpdateStore(storeId, request));
|
||||
}
|
||||
|
||||
public override Task<IEnumerable<LNURLPayPaymentMethodData>>
|
||||
GetStoreLNURLPayPaymentMethods(string storeId, bool? enabled,
|
||||
CancellationToken token = default)
|
||||
{
|
||||
return Task.FromResult(GetFromActionResult(
|
||||
_storeLnurlPayPaymentMethodsController.GetLNURLPayPaymentMethods(storeId, enabled)));
|
||||
}
|
||||
|
||||
public override Task<LNURLPayPaymentMethodData> GetStoreLNURLPayPaymentMethod(
|
||||
string storeId, string cryptoCode, CancellationToken token = default)
|
||||
{
|
||||
return Task.FromResult(GetFromActionResult<LNURLPayPaymentMethodData>(
|
||||
_storeLnurlPayPaymentMethodsController.GetLNURLPayPaymentMethod(storeId, cryptoCode)));
|
||||
}
|
||||
|
||||
public override async Task RemoveStoreLNURLPayPaymentMethod(string storeId, string cryptoCode,
|
||||
CancellationToken token = default)
|
||||
{
|
||||
HandleActionResult(
|
||||
await _storeLnurlPayPaymentMethodsController.RemoveLNURLPayPaymentMethod(storeId,
|
||||
cryptoCode));
|
||||
}
|
||||
|
||||
public override async Task<LNURLPayPaymentMethodData> UpdateStoreLNURLPayPaymentMethod(
|
||||
string storeId, string cryptoCode,
|
||||
LNURLPayPaymentMethodData paymentMethod, CancellationToken token = default)
|
||||
{
|
||||
return GetFromActionResult<LNURLPayPaymentMethodData>(await
|
||||
_storeLnurlPayPaymentMethodsController.UpdateLNURLPayPaymentMethod(storeId, cryptoCode,
|
||||
paymentMethod));
|
||||
}
|
||||
|
||||
public override Task<IEnumerable<LightningNetworkPaymentMethodData>>
|
||||
GetStoreLightningNetworkPaymentMethods(string storeId, bool? enabled,
|
||||
CancellationToken token = default)
|
||||
|
||||
Reference in New Issue
Block a user