mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-22 14:22:40 +01:00
POS: Allow overpay for articles with minimum price (#5997)
Adjust the LNURL settings so that minimum price items aren't capped and can be overpaid. Also fixes the missing LNURL response for free items to return a proper LNURL error instead of just 404. Fixes #5995.
This commit is contained in:
parent
faf6b514e6
commit
89fcf86bb4
1 changed files with 8 additions and 5 deletions
|
@ -303,11 +303,11 @@ namespace BTCPayServer
|
||||||
return NotFound();
|
return NotFound();
|
||||||
}
|
}
|
||||||
|
|
||||||
var createInvoice = new CreateInvoiceRequest()
|
var createInvoice = new CreateInvoiceRequest
|
||||||
{
|
{
|
||||||
Amount = item?.PriceType == ViewPointOfSaleViewModel.ItemPriceType.Topup? null: item?.Price,
|
Amount = item?.PriceType == ViewPointOfSaleViewModel.ItemPriceType.Topup ? null : item?.Price,
|
||||||
Currency = currencyCode,
|
Currency = currencyCode,
|
||||||
Checkout = new InvoiceDataBase.CheckoutOptions()
|
Checkout = new InvoiceDataBase.CheckoutOptions
|
||||||
{
|
{
|
||||||
RedirectURL = app.AppType switch
|
RedirectURL = app.AppType switch
|
||||||
{
|
{
|
||||||
|
@ -319,6 +319,7 @@ namespace BTCPayServer
|
||||||
AdditionalSearchTerms = new[] { AppService.GetAppSearchTerm(app) }
|
AdditionalSearchTerms = new[] { AppService.GetAppSearchTerm(app) }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var allowOverpay = item?.PriceType is not ViewPointOfSaleViewModel.ItemPriceType.Fixed;
|
||||||
var invoiceMetadata = new InvoiceMetadata { OrderId = AppService.GetRandomOrderId() };
|
var invoiceMetadata = new InvoiceMetadata { OrderId = AppService.GetRandomOrderId() };
|
||||||
if (item != null)
|
if (item != null)
|
||||||
{
|
{
|
||||||
|
@ -333,7 +334,7 @@ namespace BTCPayServer
|
||||||
store.GetStoreBlob(),
|
store.GetStoreBlob(),
|
||||||
createInvoice,
|
createInvoice,
|
||||||
additionalTags: new List<string> { AppService.GetAppInternalTag(appId) },
|
additionalTags: new List<string> { AppService.GetAppInternalTag(appId) },
|
||||||
allowOverpay: false);
|
allowOverpay: allowOverpay);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class EditLightningAddressVM
|
public class EditLightningAddressVM
|
||||||
|
@ -529,7 +530,9 @@ namespace BTCPayServer
|
||||||
return this.CreateAPIError(null, e.Message);
|
return this.CreateAPIError(null, e.Message);
|
||||||
}
|
}
|
||||||
lnurlRequest = await CreateLNUrlRequestFromInvoice(cryptoCode, i, store, blob, lnurlRequest, lnUrlMetadata, allowOverpay);
|
lnurlRequest = await CreateLNUrlRequestFromInvoice(cryptoCode, i, store, blob, lnurlRequest, lnUrlMetadata, allowOverpay);
|
||||||
return lnurlRequest is null ? NotFound() : Ok(lnurlRequest);
|
return lnurlRequest is null
|
||||||
|
? BadRequest(new LNUrlStatusResponse { Status = "ERROR", Reason = "Unable to create LNURL request." })
|
||||||
|
: Ok(lnurlRequest);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<LNURLPayRequest> CreateLNUrlRequestFromInvoice(
|
private async Task<LNURLPayRequest> CreateLNUrlRequestFromInvoice(
|
||||||
|
|
Loading…
Add table
Reference in a new issue