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:
shiftOperation | Ação | Observações |
|---|---|---|
"1" | Configura a quantidade de turnos disponíveis | Informe a quantidade em numberOfShifts. |
"2" | Troca para o próximo turno | Nenhum parâmetro extra é necessário. |
"3" | Recupera a quantidade atual de turnos | A 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
- Referência de parâmetros do deeplink - todos os parâmetros de requisição e resposta do deeplink Shift.
- Códigos de resultado e estruturas de dados - interprete o valor
resultretornado pela operação.