mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-24 06:47:50 +01:00
50 lines
1.9 KiB
C#
50 lines
1.9 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace BTCPayServer.Payments.Lightning
|
|||
|
{
|
|||
|
public class LightningSupportedPaymentMethod : ISupportedPaymentMethod
|
|||
|
{
|
|||
|
public string CryptoCode { get; set; }
|
|||
|
[Obsolete("Use Get/SetLightningChargeUrl")]
|
|||
|
public string LightningChargeUrl { get; set; }
|
|||
|
|
|||
|
public Uri GetLightningChargeUrl(bool withCredentials)
|
|||
|
{
|
|||
|
#pragma warning disable CS0618 // Type or member is obsolete
|
|||
|
UriBuilder uri = new UriBuilder(LightningChargeUrl);
|
|||
|
if (withCredentials)
|
|||
|
{
|
|||
|
uri.UserName = Username;
|
|||
|
uri.Password = Password;
|
|||
|
}
|
|||
|
#pragma warning restore CS0618 // Type or member is obsolete
|
|||
|
return uri.Uri;
|
|||
|
}
|
|||
|
|
|||
|
public void SetLightningChargeUrl(Uri uri)
|
|||
|
{
|
|||
|
if (uri == null)
|
|||
|
throw new ArgumentNullException(nameof(uri));
|
|||
|
if (string.IsNullOrEmpty(uri.UserInfo))
|
|||
|
throw new ArgumentException(paramName: nameof(uri), message: "Uri should have credential information");
|
|||
|
var splitted = uri.UserInfo.Split(':');
|
|||
|
if (splitted.Length != 2)
|
|||
|
throw new ArgumentException(paramName: nameof(uri), message: "Uri should have credential information");
|
|||
|
#pragma warning disable CS0618 // Type or member is obsolete
|
|||
|
Username = splitted[0];
|
|||
|
Password = splitted[1];
|
|||
|
LightningChargeUrl = new UriBuilder(uri) { UserName = "", Password = "" }.Uri.AbsoluteUri;
|
|||
|
#pragma warning restore CS0618 // Type or member is obsolete
|
|||
|
}
|
|||
|
|
|||
|
[Obsolete("Use Get/SetLightningChargeUrl")]
|
|||
|
public string Username { get; set; }
|
|||
|
[Obsolete("Use Get/SetLightningChargeUrl")]
|
|||
|
public string Password { get; set; }
|
|||
|
public PaymentMethodId PaymentId => new PaymentMethodId(CryptoCode, PaymentTypes.LightningLike);
|
|||
|
}
|
|||
|
}
|