Смарт-карты

Подписка на уведомления о приложении смарт карт

Для получения уведомления о приложенной смарт-карте в клиентском коде необходимо вызвать функцию со следующей сигнатурой:

const sCardAttachSub = await window.asm.subToSmartCardAttach(handler)

Где, handler - функция-обработчик, которая будет вызвана в момент приложения смарт-карты, sCardAttachSub - объект-подписка, имеющий метод unsubscribe, вызов которого отменит подписку.

Функция-обработчик имеет следующую сигнатуру:

const handler = (card) => {}

Где, card - объект-структура с результатами чтения данных с приложенной смарт-карты, который имеет поля:

  • atr с типом Uint8Array. Представляет cообщение типа Answer-to-Reset, содержащее информацию о карте (ISO7816-4)
  • type с типом string. Сообщает о типе метки и может принимать только два значения: CARD - в случае если приложена смарт-карта, EMULATED - в случае, если приложено средство эмуляции карты (например, смартфон)
  • uid с типом Uint8Array. Представляет структуру типа Unique-IDentifier, содержащую уникальный идентификатор карты, установленный ее производителем (ISO14443-3A)

Пример подписки на получение уведомления о приложенной смарт-карте с выводом полученных данных в консоль браузера и последующей отпиской:

// Создание функции-обработчика, которая производит вывод полученной структуры в консоль
const handler = (card) => console.log(card)

// Подписка на получение уведомления о приложенной смарт-карте
const sCardAttachSub = await window.asm.subToSmartCardAttach(handler)

// ... Ожидание приложенния смарт-карты

// Отмена подписки
await sCardAttachSub.unsubscribe()