Added Remote Key Injection
Added Remote Configuration
New MiuraConfig entries:
new MiuraConfigBuilder()
...
.on( INJECTING_KEYS ).emptyLine().centerLine("Injecting Keys...")
.on( INITIALISING_ENCRYPTION ).emptyLine().centerLine("Init Encryption...").emptyLine().centerLine("Please Wait 2 min")
.on( CHECKING_CONFIGURATION ).emptyLine().centerLine("Configuring...")
.on( CONFIGURATION_ERROR ).emptyLine().centerLine("Configuration Error")
...
Сумма | Статус | Стадии |
---|---|---|
1.00 | APPROVED | Purchase, Final Advice |
2.00 | DECLINED | Purchase |
3.00 | APPROVED | Purchase |
4.00 | DECLINED | Purchase, Final Advice |
В тестовом процессоре можно использовать любую карту. Терминал всегда предлагает карте ARQC, карта всегда тоже уходит в онлайн. После, процессинг всегда отвечает с Authorisation Response Code = ‘Z3’ (Unable to go online, offline declined), который передается карте, если в стадии есть Final Advice. Иначе, мы думаем, что карта отвечает TC или AAC на первую GEN AC, на этом и завершаем транзакцию.
Улучшена поддержка EMV. Для работы необходима версия paynet 3.24.02 и выше
Добавлена возможность настроить все сообщения, выводимые на дисплей Miura:
MiuraConfig miuraConfig = new MiuraConfigBuilder()
.on( STARTING ).emptyLine().centerLine("Please Wait...")
.on( INSERT_CARD ).emptyLine().centerLine("Insert Card")
.on( GOING_ONLINE ).progress(1).emptyLine().centerLine("Going Online...")
.on( SALE_SENDING ).progress(2).emptyLine().centerLine("Sale Sending...")
.on( SALE_RESPONSE_WAITING ).progress(4).emptyLine().centerLine("Sale Waiting...")
.on( ADVICE_REQUIRED ).progress(5).emptyLine().centerLine("Advice Processing...")
.on( ADVICE_SENDING ).progress(6).emptyLine().centerLine("Advice Sending...")
.on( ADVICE_RESPONSE_WAITING ).progress(15).emptyLine().centerLine("Advice Waiting...")
.on( PROCESSING_ERROR ).emptyLine().centerLine("Processing Error").emptyLine().centerLine("Take Card")
.on( ERROR_REMOVE_CARD ).emptyLine().centerLine("Error").emptyLine().centerLine("Take Card")
.on( APPROVED_REMOVE_CARD ).emptyLine().centerLine("APPROVED").emptyLine().centerLine("Take Card")
.on( DECLINED_REMOVE_CARD ).emptyLine().centerLine("DECLINED").emptyLine().centerLine("Take Card")
.on( FETCHING_LOG ).emptyLine().centerLine("Fetching Log...")
.build();
cardReaderManager = CardReaderFactory.findManager(context, cardReader, presenter
, amount, currency
, miuraConfig);
Улучшено соединение по Bluetooth c Miura (увеличена скорость, понятное название потоков)
Как и раньше создается три потока: один на соедиенение (miura-con-), второй на чтение данных (miura-reader-) и третий на запись данных (miura-writer-). Все потоки пронумерованы. Теперь легче определить, что поток завис, если есть два потока с одим префиксом, но разными номерами. Например, не должно быть двух потоков miura-con-1 и miura-con-2.
При onActivityPause() посылается сигнал interrupt, в результате время отключения уменьшилось. (Раньше все ставилось в очередь).
Теперь для bluetooth соединений используются только onActivityResume() и onActivityPause(), для audio ридеров - как и раньше.
Используется только один sleep (200ms) при неудачном соединении. Без него слишком много логов, которые никак не отключить.
Добавлено еще одно состояние: CardReaderState.CONNECTING - показывает что идет подключение к ридеру. Пока используется только у miura.
Удалены у Miura лишние вызовы cardReaderStateChanged(CONNECTED).
Добавлены простые проверки на последовательность вызовов onActivityCreate, onActivityResume, onActivityPause, onActivityDestroy. При несоблюдении последовательности выкидывается исключение IllegalStateException.
Добавлен тест с ПИН-кодом для тестового ридера. Активируется при сумме равной 10. Тест для MSR с лубой другой суммой.
Добавлено поле тип карты в метод ICardReaderPresenter.onCard(BankCard):
BankCard.cardType = MAG_STRIPE, EMV_CONTACT, EMV_CONTACTLESS
CardReaderState | Message class |
---|---|
MIURA_DEVICE_INFO | MiuraDeviceInfoMessage |
MIURA_CARD_STATUS | MiuraCardStatus |
MIURA_DEVICE_STATUS_CHANGE | MiuraDeviceStatusChangeMessage |