mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-22 22:25:28 +01:00
Adding lightning invoice fallback to onchain bitcoin url if enabled
This commit is contained in:
parent
7f79d16f02
commit
3c6992e910
2 changed files with 16 additions and 4 deletions
|
@ -62,6 +62,7 @@ namespace BTCPayServer.Data
|
||||||
_DefaultCurrencyPairs = value;
|
_DefaultCurrencyPairs = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public bool OnChainWithLnInvoiceFallback { get; set; } = true;
|
||||||
|
|
||||||
public string GetDefaultCurrencyPairString()
|
public string GetDefaultCurrencyPairString()
|
||||||
{
|
{
|
||||||
|
@ -189,6 +190,7 @@ namespace BTCPayServer.Data
|
||||||
public bool PayJoinEnabled { get; set; }
|
public bool PayJoinEnabled { get; set; }
|
||||||
|
|
||||||
public StoreHints Hints { get; set; }
|
public StoreHints Hints { get; set; }
|
||||||
|
|
||||||
public class StoreHints
|
public class StoreHints
|
||||||
{
|
{
|
||||||
public bool Wallet { get; set; }
|
public bool Wallet { get; set; }
|
||||||
|
|
|
@ -46,8 +46,7 @@ namespace BTCPayServer.Payments.Bitcoin
|
||||||
public Task<KeyPathInformation> ReserveAddress;
|
public Task<KeyPathInformation> ReserveAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void PreparePaymentModel(PaymentModel model, InvoiceResponse invoiceResponse,
|
public override void PreparePaymentModel(PaymentModel model, InvoiceResponse invoiceResponse, StoreBlob storeBlob)
|
||||||
StoreBlob storeBlob)
|
|
||||||
{
|
{
|
||||||
var paymentMethodId = new PaymentMethodId(model.CryptoCode, PaymentTypes.BTCLike);
|
var paymentMethodId = new PaymentMethodId(model.CryptoCode, PaymentTypes.BTCLike);
|
||||||
|
|
||||||
|
@ -55,8 +54,19 @@ namespace BTCPayServer.Payments.Bitcoin
|
||||||
var network = _networkProvider.GetNetwork<BTCPayNetwork>(model.CryptoCode);
|
var network = _networkProvider.GetNetwork<BTCPayNetwork>(model.CryptoCode);
|
||||||
model.IsLightning = false;
|
model.IsLightning = false;
|
||||||
model.PaymentMethodName = GetPaymentMethodName(network);
|
model.PaymentMethodName = GetPaymentMethodName(network);
|
||||||
model.InvoiceBitcoinUrl = cryptoInfo.PaymentUrls.BIP21;
|
|
||||||
model.InvoiceBitcoinUrlQR = cryptoInfo.PaymentUrls.BIP21;
|
var invoiceBitcoinUrl = cryptoInfo.PaymentUrls.BIP21;
|
||||||
|
|
||||||
|
if (storeBlob.OnChainWithLnInvoiceFallback)
|
||||||
|
{
|
||||||
|
var lightningInfo = invoiceResponse.CryptoInfo.FirstOrDefault(a =>
|
||||||
|
a.GetpaymentMethodId() == new PaymentMethodId(model.CryptoCode, PaymentTypes.LightningLike));
|
||||||
|
if (!String.IsNullOrEmpty(lightningInfo?.PaymentUrls?.BOLT11))
|
||||||
|
invoiceBitcoinUrl += "&" + lightningInfo.PaymentUrls.BOLT11.Replace("lightning:", "lightning=", StringComparison.OrdinalIgnoreCase);
|
||||||
|
}
|
||||||
|
|
||||||
|
model.InvoiceBitcoinUrl = invoiceBitcoinUrl;
|
||||||
|
model.InvoiceBitcoinUrlQR = invoiceBitcoinUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string GetCryptoImage(PaymentMethodId paymentMethodId)
|
public override string GetCryptoImage(PaymentMethodId paymentMethodId)
|
||||||
|
|
Loading…
Add table
Reference in a new issue