Saltar al contenido

MDB: eventos ​

Referencia completa. La firma muestra una tupla de argumentos del listener, no un objeto envolvente.

mdbCardHolder:wrong-cmd ​

El equipo rechazó el formato; opcodeName identifica el comando.

ts
type Arguments = [
    data: {
      opcodeName: string;
      opcode: number;
      params: string[];
    }
  ];
ts
jsd.on('mdbCardHolder:wrong-cmd', payload => console.log(payload));

mdbCardHolder:jsd-license-error ​

Una restricción de licencia o de control de precios rechazó la operación.

ts
type Arguments = [
    data: {
      type: 'unknown' | 'expired-license' | 'app-number-not-licensed' | 'price-control-active-direct-dispense-not-allowed';
      opcode: number;
      actionName: string;
      params: string[];
    }
  ];
ts
jsd.on('mdbCardHolder:jsd-license-error', payload => console.log(payload));

mdbCardHolder:condition-status ​

Conexión MDB y estado operativo del lector.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      connectionStatus: MdbConnectionStatus;
      cardHolderStatus: MdbCardHolderStatus;
    }
  ];
ts
jsd.on('mdbCardHolder:condition-status', payload => console.log(payload));

mdbCardHolder:identification ​

Campos de identificación devueltos por esta aplicación.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      manufacturerCode: string;
      serialNumber: string;
      model: string;
      softwareVersion: string;
    }
  ];
ts
jsd.on('mdbCardHolder:identification', payload => console.log(payload));

mdbCardHolder:configuration-data ​

Código monetario y capacidades del lector.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      countryCurrencyCode: string;
      canReloadFunds: boolean;
      canRestoreFunds: boolean;
      canMakeMultipleSales: boolean;
      hasDisplay: boolean;
      canRecorCashSales: boolean;
    }
  ];
ts
jsd.on('mdbCardHolder:configuration-data', payload => console.log(payload));

mdbCardHolder:feature-configuration ​

Disponibilidad y habilitación de always-idle y remote-vend.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      alwaysIdle: {
        available: boolean;
        enabled: boolean;
      };
      remoteVend: {
        available: boolean;
        enabled: boolean;
      };
    }
  ];
ts
jsd.on('mdbCardHolder:feature-configuration', payload => console.log(payload));

mdbCardHolder:authorization ​

Resultado de autorización MDB y motivo de fallo opcional.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      success: boolean;
      reason: string | null;
    }
  ];
ts
jsd.on('mdbCardHolder:authorization', payload => console.log(payload));

mdbCardHolder:balance-statement ​

Saldo, máximo de recarga, método de pago y grupo de tarjeta.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      tokenBalanceStatus: 'idle' | 'active';
      customerBalance: number;
      maxCardRecharge: number;
      paymentMethod: {
        isKnown: boolean;
        id: string | null;
      };
      groupWhichCardBelongs: string;
    }
  ];
ts
jsd.on('mdbCardHolder:balance-statement', payload => console.log(payload));

mdbCardHolder:sale-approval ​

Aprobación o rechazo de venta, con importe y estado opcionales.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardSaleApprovalStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
      amountCharged?: number;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-approval', payload => console.log(payload));

mdbCardHolder:sale-cancellation ​

Resultado de cancelación de venta.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: 'success' | 'failure';
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-cancellation', payload => console.log(payload));

mdbCardHolder:sale-success-confirmation ​

Resultado de confirmar una entrega exitosa al lector.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardSaleSuccessStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-success-confirmation', payload => console.log(payload));

mdbCardHolder:sale-failure-confirmation ​

Resultado de notificar una entrega fallida y su devolución.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardSaleFailureStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:sale-failure-confirmation', payload => console.log(payload));

mdbCardHolder:end-session ​

Respuesta de cierre de sesión MDB.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardEndSession;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:end-session', payload => console.log(payload));

mdbCardHolder:selection-request ​

Solicitud de selección con saldo y opciones del producto.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      tokenBalanceStatus: 'idle' | 'active';
      customerBalance: number;
      paymentMethod: {
        isKnown: boolean;
        id: string | null;
      };
      product: {
        id: number | null;
        withLid: boolean;
        sugarLevel: MdbCardProductOptions;
      };
    }
  ];
ts
jsd.on('mdbCardHolder:selection-request', payload => console.log(payload));

mdbCardHolder:revalue ​

Aprobación o rechazo de recarga de saldo.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      status: MdbCardRevalueStatus;
      currentCardHolderStatus?: MdbCardHolderStatus | null;
    }
  ];
ts
jsd.on('mdbCardHolder:revalue', payload => console.log(payload));

mdbCardHolder:display-message ​

Mensaje de dos líneas y duración solicitada.

ts
type Arguments = [
    data: {
      deviceNumber: DEVICE_NUMBER;
      displayTimeSeconds: number;
      message: {
        line1: string;
        line2: string;
      };
    }
  ];
ts
jsd.on('mdbCardHolder:display-message', payload => console.log(payload));

Los alias usados en estas firmas se definen en tipos de referencia.

Protocolo explícito, eventos tipados y transporte aislado.