Getnet DocsGetnet Docs

Gerencie os turnos dos operadores

Este guia mostra como configurar a quantidade de turnos em um terminal, avançar para o próximo turno e consultar quantos turnos estão configurados, usando o deeplink Shift.

Como funciona

As três operações compartilham a URI getnet://payment/v1/shift e são selecionadas pelo parâmetro shiftOperation:

shiftOperationAçãoObservações
"1"Configura a quantidade de turnos disponíveisInforme a quantidade em numberOfShifts.
"2"Troca para o próximo turnoNenhum parâmetro extra é necessário.
"3"Recupera a quantidade atual de turnosA resposta inclui totalOfShifts.

O terminal adapta o fluxo ao que você envia. Quando um valor obrigatório já está na requisição, o terminal ignora a tela de entrada correspondente. Quando ele falta, o terminal pede o valor ao operador.

Antes de começar

O Getnet Payment App precisa estar instalado no terminal e sua aplicação precisa conseguir iniciá-lo, como descrito em Arquitetura e fluxo.

Passo 1: envie o Intent de turno

Monte o Intent com a operação que você precisa. O exemplo abaixo configura dois turnos e assume a responsabilidade de impressão:

private val REQUEST_CODE = 1001

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val intent = Intent(Intent.ACTION_VIEW, Uri.parse("getnet://payment/v1/shift"))
    intent.putExtra("shiftOperation", "1")
    intent.putExtra("numberOfShifts", "2")
    intent.putExtra("allowPrintCurrentTransaction", "false")
    startActivityForResult(intent, REQUEST_CODE)
}

O parâmetro opcional skipConfirmation oculta a tela de confirmação de troca de turno. O parâmetro allowPrintCurrentTransaction segue as regras em Responsabilidade de impressão.

Passo 2: trate a resposta

Leia result e resultDetails no Intent retornado. Para shiftOperation "3", leia também totalOfShifts:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        val extras = data?.extras
        val result = extras?.getString("result")
        val resultDetails = extras?.getString("resultDetails")
        val totalOfShifts = extras?.getString("totalOfShifts")
    }
}

Uma configuração ou troca bem-sucedida retorna result 0 com resultDetails APPROVED. A operação de consulta retorna o mesmo par mais a quantidade de turnos:

{
  "result": 0,
  "resultDetails": "APPROVED",
  "totalOfShifts": "3"
}

totalOfShifts só aparece quando shiftOperation é "3".

Próximos passos