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ída | Descrição |
|---|---|
psNotify | Mensagem 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
| Retorno | Descrição |
|---|---|
PPC_OK | Comando 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_PROCESSING | O comando ainda está em execução. Caso necessário, a operação pode ser interrompida utilizando a função PPC_AbortCmd. |
PPC_NOTIFY | Equivalente a PPC_PROCESSING, porém o parâmetro psNotify retornou uma mensagem que deve ser apresentada ao operador. |
PPC_NOTIFY_DSP | Disponí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_PIN | Disponí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_MNU | Disponí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_INVCALL | A função PPC_StartExecCmd não foi chamada antes da execução desta operação. |
PPC_ERRMANDAT | Um parâmetro obrigatório não foi informado. |
PPC_COMMERR | Ocorreu um erro de comunicação com o Pin Pad. |
PPC_PORTERR | Ocorreu 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;
} Updated about 1 month ago
Did this page help you?