Detecção de cartão

Detecção de Cartão

Faz-se uso da classe SmartPOSCardDetectionRequestBuilder.

Cartão inserido

Request para verificar que o cartão foi inserido.

Uma vez que este request é realizado, roda uma tarefa em segundo plano consultando o momento que o cartão é inserido, sendo interrompido de duas maneiras:

  • sendo cancelado explicitamente request.cancel();
  • ou no momento que o cartão é inserido.
Exemplo
val request = SmartPOSPlugin.createCardDetectionRequestBuilder()
    .callback(object: Callback<SmartPOSCardDetectionResponse>() {
        override fun onSuccess(response: SmartPOSCardDetectionResponse) {
            if (response.cardWasDetected) {
                handleCardWasDetected()
            }
        }

        override fun onFail(error: Throwable) {
        }
    })
    .build()

Zoop.post(request!!)

Cartão removido

Request para verificar, ao fim de uma transação, que o cartão está inserido, e mandar remover, caso necessário. Uma vez que o cartão não esteja presente, será lançado o callback onComplete.

Uma vez que este request é realizado, roda uma tarefa em segundo plano consultando o momento que o cartão é removido, sendo interrompido de duas maneiras:

  • sendo cancelado explicitamente request.cancel();
  • ou no momento que o cartão é removido.
Informação

Caso o cartão não esteja presente no momento do request, onComplete é chamado imediatamente.

Exemplo
val request = SmartPOSPlugin.createCardDetectionRequestBuilder()
    .cardDetectionType(CardDetectionTypeRequestField.CardDetectionType.REMOVED)
    .callback(object: Callback<SmartPOSCardDetectionResponse>() {
        override fun onSuccess(response: SmartPOSCardDetectionResponse) {
            CoroutineScope(Dispatchers.Main).launch {
                if (response.cardWasDetected) {
                    handleCardStillInserted()
                }
            }
        }

        override fun onFail(error: Throwable) {
        }

        override fun onComplete() {
            handleCardIsNotInserted()
        }
    })
    .build()

Zoop.post(request)