Uso de la Función printStr
Esta función toma la cadena de texto formateada, la longitud del papel y un PrintCallback para manejar los eventos del proceso de impresión.
Callback: PrintCallback
- Descripción: Callback utilizado para recibir los eventos y estados durante el proceso de impresión del ticket.
- Valores:
onError: Este método se invoca cuando ocurre un error durante el proceso de impresión del ticket.- Parámetros:
error(ErrorResponse): Un código y mensaje de error opcional que describe el fallo.codecódigo de errormessagemensaje de error
- Descripción: Se llama cuando hay un error en el proceso de impresión del ticket.
- Parámetros:
onSuccessful: Este método se invoca cuando el ticket se ha impreso exitosamente.- Descripción: Se llama cuando el ticket se imprime exitosamente.
- Retorno: Ejecuta el
callbackproporcionado para realizar acciones adicionales después de la impresión.
checkServices.printStr(
"Folio: 3123123" + "\n" +
"Amount: 150" + "\n",
object : PrintCallback.Stub() {
override fun onError(error: ErrorResponse) {
Log.e("printStr", error.code)
}
override fun onSuccessful() {
callback()
}
}
) CheckServices checkServices = CheckServices.getInstance(this);
checkServices.printStr(textToPrint, 15, new PrintCallback.Stub() {
@Override
public void onSuccessful() {
// Success
}
@Override
public void onError(ErrorResponse error) {
Log.d("printStr", error.code );
}
});Anexo de datos para tickets
Imprimir Bitmap
La función printBitmap se utiliza para imprimir un bitmap en la aplicación Pagando Check². A continuación, se describen los detalles de la función y se proporciona un ejemplo de su uso.
Parámetros
imageBitmap:Bitmap- Descripción: La imagen representada como un objeto
Bitmapque se imprimirá. - Ejemplo:
imageBitmap
- Descripción: La imagen representada como un objeto
Callback: PrintCallback
- Descripción: Callback utilizado para recibir los resultados del intento de impresión.
- Métodos:
onError: Este método se invoca cuando ocurre un error durante el intento de impresión.- Parámetros:
error(ErrorResponse): Un código y mensaje de error opcional que describe el fallo.codecódigo de errormessagemensaje de error
- Descripción: Se llama cuando hay un error en el proceso de impresión.
- Retorno: No retorna un valor, pero proporciona información sobre el error ocurrido.
- Parámetros:
onSuccessful: Este método se invoca cuando la impresión se completa exitosamente.- Descripción: Se llama cuando la impresión se completa exitosamente.
- Retorno: No retorna un valor, pero indica que el proceso de impresión fue exitoso.
/*
Declara una variable de solo lectura llamada
**checkServices** de tipo **CheckServices** y le asigna
la instancia de **CheckServices** obtenida mediante
el llamado al método **getInstance(context)**.
*/
val checkServices: CheckServices = CheckServices.getInstance(App.appContext)
/*
Llamada de la función printBitmap que recibe como
parámetro un bitmap y un PrintCallback que podría
tener dos métodos: onError y onSuccessful.
*/
checkServices.printBitmap(imageBitmap,
object : PrintCallback.Stub() {
override fun onError(error: ErrorResponse) {
Log.e("printBitmap", error.code)
}
override fun onSuccessful() {
callback()
}
})
Uso de la Función readNfcCard
Lee una tarjeta NFC (membresía, control de acceso) y regresa su identificador y tipo.
Esta función no lee tarjetas EMV (bancarias). Si se acerca una, la lectura se rechaza y responde onError con el código 6003; para cobrar se usa la lectura de tarjeta de pago.
Parámetros
timeoutMs:Int- Descripción: Tiempo máximo, en milisegundos, que la terminal espera a que se acerque la tarjeta. Un valor menor o igual a 0 usa el valor por defecto de 30 segundos.
- Ejemplo:
15000
Callback: ReadNonEmvCardCallback
- Descripción: Callback que recibe el resultado de la lectura.
- Métodos:
onSuccessful- Parámetros:
cardData(String): JSON con los datos de la tarjeta. Los bytes vienen en hexadecimal.uid: Identificador único de la tarjeta.cardType: Tipo de tarjeta detectado por el lector.cardTypeName: Nombre legible del tipo de tarjeta.resetData: ATS de la tarjeta. Viene vacío en tarjetas sin ISO 14443-4.
- Descripción: Se invoca cuando la tarjeta se leyó correctamente.
- Retorno: No regresa ningún valor.
- Parámetros:
onError- Parámetros:
errorResponse(ErrorResponse): Código y mensaje de error.code: Código de error (ver Códigos de error).message: Mensaje de error.
- Descripción: Se invoca cuando la lectura no se pudo completar.
- Retorno: No regresa ningún valor.
- Parámetros:
Ejemplo en Kotlin
/*
* Tiempo máximo de espera de la tarjeta en milisegundos
*/
val timeoutMs = 15000
/*
* Llamada a la función readNfcCard con el callback
*/
checkServices.readNfcCard(timeoutMs, object : ReadNonEmvCardCallback.Stub() {
override fun onSuccessful(cardData: String?) {
val json = JSONObject(cardData ?: "{}")
val uid = json.optString("uid")
Log.d("ReadNfcCard", "UID: $uid")
}
override fun onError(errorResponse: ErrorResponse?) {
Log.e("ReadNfcCard", "Error: ${errorResponse?.code} ${errorResponse?.message}")
}
})Ejemplo en Java
/*
* Tiempo máximo de espera de la tarjeta en milisegundos
*/
int timeoutMs = 15000;
/*
* Llamada a la función readNfcCard con el callback
*/
checkServices.readNfcCard(timeoutMs, new ReadNonEmvCardCallback.Stub() {
@Override
public void onSuccessful(String cardData) {
try {
JSONObject json = new JSONObject(cardData);
Log.d("ReadNfcCard", "UID: " + json.optString("uid"));
} catch (JSONException e) {
Log.e("ReadNfcCard", "JSON inválido", e);
}
}
@Override
public void onError(ErrorResponse errorResponse) {
Log.e("ReadNfcCard", "Error: " + errorResponse.getCode() + " " + errorResponse.getMessage());
}
});Se llama a readNfcCard con el tiempo de espera; la terminal activa el lector sin contacto y responde una sola vez, en onSuccessful con el JSON de la tarjeta o en onError con el código de error.
Uso de la Función readMagneticCard
Lee una tarjeta de banda magnética no bancaria (membresía, lealtad) y regresa sus tracks.
Esta función no lee tarjetas EMV (bancarias). Si se desliza una, la lectura se rechaza y responde onError con el código 6003; para cobrar se usa la lectura de tarjeta de pago.
Parámetros
timeoutMs:Int- Descripción: Tiempo máximo, en milisegundos, que la terminal espera a que se deslice la tarjeta. Un valor menor o igual a 0 usa el valor por defecto de 30 segundos.
- Ejemplo:
15000
Callback: ReadNonEmvCardCallback
- Descripción: Callback que recibe el resultado de la lectura.
- Métodos:
onSuccessful- Parámetros:
cardData(String): JSON con los datos de la banda.track1: Contenido del track 1.track2: Contenido del track 2.track3: Contenido del track 3.cardNo: Número de tarjeta.expiryDate: Fecha de expiración.serviceCode: Código de servicio.
- Descripción: Se invoca cuando la tarjeta se leyó correctamente.
- Retorno: No regresa ningún valor.
- Parámetros:
onError- Parámetros:
errorResponse(ErrorResponse): Código y mensaje de error.code: Código de error (ver Códigos de error).message: Mensaje de error.
- Descripción: Se invoca cuando la lectura no se pudo completar o la tarjeta es bancaria.
- Retorno: No regresa ningún valor.
- Parámetros:
Ejemplo en Kotlin
/*
* Tiempo máximo de espera de la tarjeta en milisegundos
*/
val timeoutMs = 15000
/*
* Llamada a la función readMagneticCard con el callback
*/
checkServices.readMagneticCard(timeoutMs, object : ReadNonEmvCardCallback.Stub() {
override fun onSuccessful(cardData: String?) {
val json = JSONObject(cardData ?: "{}")
val cardNo = json.optString("cardNo")
Log.d("ReadMagneticCard", "Tarjeta: $cardNo")
}
override fun onError(errorResponse: ErrorResponse?) {
Log.e("ReadMagneticCard", "Error: ${errorResponse?.code} ${errorResponse?.message}")
}
})Ejemplo en Java
/*
* Tiempo máximo de espera de la tarjeta en milisegundos
*/
int timeoutMs = 15000;
/*
* Llamada a la función readMagneticCard con el callback
*/
checkServices.readMagneticCard(timeoutMs, new ReadNonEmvCardCallback.Stub() {
@Override
public void onSuccessful(String cardData) {
try {
JSONObject json = new JSONObject(cardData);
Log.d("ReadMagneticCard", "Tarjeta: " + json.optString("cardNo"));
} catch (JSONException e) {
Log.e("ReadMagneticCard", "JSON inválido", e);
}
}
@Override
public void onError(ErrorResponse errorResponse) {
Log.e("ReadMagneticCard", "Error: " + errorResponse.getCode() + " " + errorResponse.getMessage());
}
});Se llama a readMagneticCard con el tiempo de espera; la terminal activa el lector de banda y responde una sola vez, en onSuccessful con el JSON de la tarjeta o en onError con el código de error.