【发布时间】:2016-12-18 07:26:26
【问题描述】:
这个问题可能很愚蠢,但我无法做到这一点。我有一个通过蓝牙连接到我的应用程序的支付设备。为了让设备显示货币代码,我需要传递一个字符串,如下所示:
String codeForPaymendDevice = "978";
这个“978”基本上发送“EUR”货币代码并显示在支付设备的屏幕上。 (设备的库映射并处理这个)。在我的应用程序中,当用户以欧元货币进行购买时,它应该与“978(EUR)”进行比较,如果两者都匹配,它应该解析 codeForPaymentDevice。我无法做到这一点,因为我无法将“EUR”与 978 进行比较(因为我的代码不知道 978 是 EUR,只有支付设备知道 978 是 EUR)。
我需要做的是,将“978”映射到“EUR”代码,然后将transaction.getCurrencyCode()与映射的变量进行比较,然后解析它。
private SaleRequest buildTransactionRequest(Transaction transaction) {
final SaleRequest tr = new SaleRequest();
BigDecimal amount = getAmountPaid();
String codeForPaymentDevice = "978";
String formattedAmount;
try {
if (!transaction.getCurrencyCode().equalsIgnoreCase(CREW_CURRENCY)) {
formattedAmount = AirFiApplication
.getPriceFormatter(AirFiApplication.getCurrency(transaction.getCurrencyCode())).format(amount);
// transaction.getCurrencyCode = EUR
tr.setCurrency(codeForPaymentDevice); // TODO remove hardcoding
}
} catch (MPosValueException e) {
LOG.error("Error while building transaction request due to {}", e.getLocalizedMessage());
}
return tr;
}
【问题讨论】:
标签: android string bluetooth compare