Merge pull request #170 from rockstardev/fiat

Display fiat value of invoice during checkout
This commit is contained in:
Nicolas Dorier
2018-05-16 10:18:24 +09:00
committed by GitHub
5 changed files with 34 additions and 28 deletions

View File

@@ -242,8 +242,9 @@ namespace BTCPayServer.Controllers
CustomCSSLink = storeBlob.CustomCSS?.AbsoluteUri,
CustomLogoLink = storeBlob.CustomLogo?.AbsoluteUri,
BtcAddress = paymentMethodDetails.GetPaymentDestination(),
OrderAmount = (accounting.TotalDue - accounting.NetworkFee).ToString(),
BtcDue = accounting.Due.ToString(),
OrderAmount = (accounting.TotalDue - accounting.NetworkFee).ToString(),
OrderAmountFiat = OrderAmountFiat(invoice.ProductInformation),
CustomerEmail = invoice.RefundMail,
RequiresRefundEmail = storeBlob.RequiresRefundEmail,
ExpirationSeconds = Math.Max(0, (int)(invoice.ExpirationTime - DateTimeOffset.UtcNow).TotalSeconds),
@@ -315,6 +316,17 @@ namespace BTCPayServer.Controllers
}
return price.ToString("C", provider) + $" ({currency})";
}
private string OrderAmountFiat(ProductInformation productInformation)
{
// check if invoice source currency is crypto... if it is there is no "order amount in fiat"
foreach (var net in _NetworkProvider.GetAll())
{
if (net.CryptoCode == productInformation.Currency)
return null;
}
return FormatCurrency(productInformation.Price, productInformation.Currency);
}
[HttpGet]
[Route("i/{invoiceId}/status")]