PPC_FinishExecCmd

Esta função finaliza a execução de um comando blocante iniciado por PPC_StartExecCmd.

Caso a função retorne PPC_PROCESSING ou PPC_NOTIFY, isso indica que o processo ainda está em execução no pinpad, sendo que pode ser interrompido através da função PPC_AbortCmd.

Sintaxe: int PPC_FinishExecCmd (char *psNotify);

Entradas

Não há.

Saídas

SaídaDescrição
psNotifyMensagem de notificação com 32 caracteres no formato "S", sem terminador NUL (0x00). Este parâmetro é retornado somente quando a função retorna PPC_NOTIFY, PPC_NOTIFY_DSP ou PPC_NOTIFY_PIN.

Retorno

RetornoDescrição
PPC_OKComando executado com sucesso. Dependendo da operação realizada, pode haver dados de resposta disponíveis para consulta por meio da função PPC_GetResp.
PPC_PROCESSINGO comando ainda está em execução. Caso necessário, a operação pode ser interrompida utilizando a função PPC_AbortCmd.
PPC_NOTIFYEquivalente a PPC_PROCESSING, porém o parâmetro psNotify retornou uma mensagem que deve ser apresentada ao operador.
PPC_NOTIFY_DSPDisponível apenas para PinPads sem display. Equivalente a PPC_PROCESSING, porém psNotify retornou uma mensagem de até 2 linhas por 16 colunas para ser apresentada ao portador do cartão.
PPC_NOTIFY_PINDisponível apenas para PinPads sem display. Equivalente a PPC_PROCESSING, porém psNotify retornou um valor numérico entre "00" e "12" indicando a quantidade de dígitos do PIN já digitados pelo portador do cartão.
PPC_NOTIFY_MNUDisponível apenas para PinPads sem display. Indica que deve ser apresentado ao portador um menu para seleção da aplicação do cartão.
PPC_INVCALLA função PPC_StartExecCmd não foi chamada antes da execução desta operação.
PPC_ERRMANDATUm parâmetro obrigatório não foi informado.
PPC_COMMERROcorreu um erro de comunicação com o Pin Pad.
PPC_PORTERROcorreu um erro ao acessar a porta de comunicação.
📘

Os demais retornos variam conforme o comando executado. Consulte a documentação de cada comando para mais detalhes.

Exemplo

int iCapturaCodFidelidade (char *pszCodFidelidade) 
{ 
   int iSt; 
   char sMsgNotify[32]; 

   PPC_SetParam (PPC_INP_MSGIDX, “30”, -1); 
   PPC_SetParam (PPC_INP_MINDIG, “5”, -1); 
   PPC_SetParam (PPC_INP_MAXDIG, “12”, -1); 
   PPC_SetParam (PPC_INP_TIMEOUT, “60”, -1); 
   iSt = PPC_StartExecCmd (PPC_CMD_GETCLRDATA); 
   if (iSt != PPC_OK) return iSt; 

   do { 
      iSt = PPC_FinishExecCmd (sNotifyMsg); 
      if (iSt == PPC_NOTIFY) 
         ShowNotifyMessage (sNotifyMsg); 
      if (WishToAbort () == TRUE) { 
         PPC_AbortCmd (); 
         return -1; 
      } 
   } while (iSt == PPC_PROCESSING || iSt == PPC_NOTIFY); 
   if (iSt != PPC_OK) return iSt; 

   iSt = PPC_GetResp (PPC_OUT_VALUE, 13, pszCodFidelidade); 
   return iSt; 
} 

Did this page help you?