Displaying payment method name during checkout

Ref: https://github.com/btcpayserver/btcpayserver/issues/152
This commit is contained in:
rockstardev
2018-07-13 15:58:59 -05:00
parent 97e564901e
commit 33d18a3278
21 changed files with 3877 additions and 13 deletions

View File

@@ -248,6 +248,8 @@ namespace BTCPayServer.Controllers
{
CryptoCode = network.CryptoCode,
PaymentMethodId = paymentMethodId.ToString(),
PaymentMethodName = GetPaymentMethodName(paymentMethodId.ToString()),
CryptoImage = "/" + GetImage(paymentMethodId, network),
IsLightning = paymentMethodId.PaymentType == PaymentTypes.LightningLike,
ServerUrl = HttpContext.Request.GetAbsoluteRoot(),
OrderId = invoice.OrderId,
@@ -279,7 +281,6 @@ namespace BTCPayServer.Controllers
TxCount = accounting.TxRequired,
BtcPaid = accounting.Paid.ToString(),
Status = invoice.Status,
CryptoImage = "/" + GetImage(paymentMethodId, network),
NetworkFee = paymentMethodDetails.GetTxFee(),
IsMultiCurrency = invoice.GetPayments().Select(p => p.GetPaymentMethodId()).Concat(new[] { paymentMethod.GetId() }).Distinct().Count() > 1,
AllowCoinConversion = storeBlob.AllowCoinConversion,
@@ -288,6 +289,7 @@ namespace BTCPayServer.Controllers
.Select(kv => new PaymentModel.AvailableCrypto()
{
PaymentMethodId = kv.GetId().ToString(),
PaymentMethodName = GetPaymentMethodName(kv.GetId().ToString()),
CryptoImage = "/" + GetImage(kv.GetId(), kv.Network),
Link = Url.Action(nameof(Checkout), new { invoiceId = invoiceId, paymentMethodId = kv.GetId().ToString() })
}).Where(c => c.CryptoImage != "/")
@@ -299,6 +301,19 @@ namespace BTCPayServer.Controllers
return model;
}
private static readonly Dictionary<string,string> CURRENCY_NAMES = new Dictionary<string, string>
{
{"BTC", "Bitcoin (BTC)" },
{"BTC_LightningLike", "Bitcoin (BTC) Lightning" },
{"LTC", "Litecoin (LTC)" },
{"LTC_LightningLike", "Litecoin (LTC) Lightning" },
{"DOGE", "Dogecoin (DOGE)" },
};
private string GetPaymentMethodName(string key)
{
return CURRENCY_NAMES[key];
}
private string GetImage(PaymentMethodId paymentMethodId, BTCPayNetwork network)
{
return (paymentMethodId.PaymentType == PaymentTypes.BTCLike ? Url.Content(network.CryptoImagePath) : Url.Content(network.LightningImagePath));