Administra los turnos de operador
Esta guía te muestra cómo administrar los turnos de un terminal con el deeplink Shift. Configuras la cantidad de turnos disponibles, pasas al siguiente turno y consultas cuántos hay configurados.
Cómo funciona
Las tres operaciones comparten el URI getnet://payment/v1/shift y se seleccionan con el parámetro shiftOperation:
shiftOperation | Acción | Notas |
|---|---|---|
"1" | Configura la cantidad de turnos disponibles | Envía la cantidad en numberOfShifts. |
"2" | Cambia al siguiente turno | No necesita parámetros extra. |
"3" | Obtiene la cantidad actual de turnos | La respuesta agrega totalOfShifts. |
El terminal ajusta el flujo según lo que envías. Si un valor obligatorio ya viene en la solicitud, el terminal omite la pantalla de ingreso correspondiente. Si falta, se lo pide al operador.
Antes de comenzar
La Getnet Payment App debe estar instalada en el terminal y tu aplicación debe poder iniciarla, como se describe en Arquitectura y flujo.
Paso 1: Envía el Intent de Shift
Crea el Intent con la operación que necesitas. El siguiente ejemplo configura dos turnos y asume la responsabilidad de impresión:
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)
}El parámetro opcional skipConfirmation oculta la pantalla de confirmación del cambio de turno. El parámetro allowPrintCurrentTransaction sigue las reglas de Responsabilidad de impresión.
Paso 2: Procesa la respuesta
Lee result y resultDetails del Intent devuelto. Para shiftOperation "3", lee también 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")
}
}Una configuración o un cambio exitoso devuelve result 0 con resultDetails APPROVED. La operación de consulta devuelve el mismo par más la cantidad de turnos:
{
"result": 0,
"resultDetails": "APPROVED",
"totalOfShifts": "3"
}totalOfShifts solo está presente cuando shiftOperation es "3".
Siguientes pasos
- Referencia de parámetros del deeplink - todos los parámetros de solicitud y respuesta del deeplink Shift.
- Códigos de resultado y estructuras de datos - interpreta el valor de
resultque devuelve la operación.