PPC_CMD_GETCLRDATA
Este comando permite que a Aplicação de Pagamento capture dados em claro através do teclado do pin pad. Para cumprir com as exigências de segurança PCI, a mensagem apresentada no display pin pad para a solicitação dos dados deve ser escolhida entre uma das disponíveis em uma tabela fixa definida por esta especificação.
Este comando existe na PPCONECTA para uso livre do desenvolvedor da Aplicação de Pagamento em outras operações apartadas do fluxo de pagamento do Cielo Conecta.
/Este comando somente funciona com pin pads v2.xx, sendo que a tabela de mensagens da v2.12 é mais extensa do que da v2.03.
Este comando é blocante, portanto deve ser usado com as funções PPC_StartExecCmd e PPC_FinishExecCmd.
Parâmetros de entrada
| Constante | Presença | Observação |
|---|---|---|
| PPC_INP_MSGIDX | M | Índice da mensagem a ser apresentada na tela de captura. |
| PPC_INP_MINDIG | O | Quantidade mínima de dígitos a ser capturada ("0" a "32"). Se ausente, assume-se o valor "0" (zero), ou seja, uma entrada vazia será permitida. |
| PPC_INP_MAXDIG | O | Quantidade máxima de dígitos a ser capturada ("1" a "32"). Se ausente, assume-se o valor "32". Se presente, deve ser maior ou igual a PPC_INP_MINDIG. |
| PPC_INP_TIMEOUT | O | Tempo máximo de espera por uma ação do portador do cartão, em segundos. Se ausente, este comando nunca finaliza por erro PPC_TIMEOUT. |
Dados de resposta
| Constante | Observação |
|---|---|
| PPC_OUT_VALUE | Valor digitado pelo portador do cartão. |
Retornos
| Retorno | Descrição |
|---|---|
| PPC_OK | Informação capturada com sucesso. |
| PPC_NOTOPEN | O comando PPC_CMD_OPEN não foi chamado previamente. |
| PPC_ERRMANDAT | O parâmetro PPC_INP_MSGIDX não foi fornecido. |
| PPC_TIMEOUT | Tempo de espera por uma ação do portador do cartão esgotado. |
| PPC_CANCEL | Operação cancelada pelo portador do cartão. |
| PPC_INVMODEL | Versão incompatível de pinpad (anterior à v2.xx). |
Outros retornos: Ver Códigos de retorno.
Mensagens
Todos os pin pads v2.xx:
| Índice | Mensagem |
|---|---|
| 1 | DIGITE O DDD |
| 2 | REDIGITE O DDD |
| 3 | DIGITE O TELEFONE |
| 4 | REDIGITE O TELEFONE |
| 5 | DIGITE DDD+TELEFONE |
| 6 | REDIGITE DDD+TELEFONE |
| 7 | DIGITE O CPF |
| 8 | REDIGITE O CPF |
| 9 | DIGITE O RG |
| 10 | REDIGITE O RG |
| 11 | DIGITE OS 4 ÚLTIMOS DÍGITOS |
| 12 | DIGITE CÓDIGO DE SEGURANÇA |
Pin pads v2.12 (ou superior)
| Índice | Mensagem |
|---|---|
| 13 | DIGITE O CNPJ |
| 14 | REDIGITE O CNPJ |
| 15 | DIGITE A DATA (DDMMAAAA) |
| 16 | DIGITE A DATA (DDMMAA) |
| 17 | DIGITE A DATA (DDMM) |
| 18 | DIGITE O DIA (DD) |
| 19 | DIGITE O MÊS (MM) |
| 20 | DIGITE O ANO (AA) |
| 21 | DIGITE O ANO (AAAA) |
| 22 | DATA DE NASCIMENTO (DDMMAAAA) |
| 23 | DATA DE NASCIMENTO (DDMMAA) |
| 24 | DATA DE NASCIMENTO (DDMM) |
| 25 | DIA DO NASCIMENTO (DD) |
| 26 | MÊS DO NASCIMENTO (MM) |
| 27 | ANO DO NASCIMENTO (AA) |
| 28 | ANO DO NASCIMENTO (AAAA) |
| 29 | DIGITE IDENTIFICAÇÃO |
| 30 | CÓDIGO DE FIDELIDADE |
| 31 | NÚMERO DA MESA |
| 32 | QUANTIDADE DE PESSOAS |
| 33 | DIGITE QUANTIDADE |
| 34 | NÚMERO DA BOMBA |
| 35 | NÚMERO DA VAGA |
| 36 | NÚMERO DO GUICHÊ/CAIXA |
| 37 | CÓDIGO DO VENDEDOR |
| 38 | CÓDIGO DO GARÇOM |
| 39 | NOTA DO ATENDIMENTO |
| 40 | NÚMERO DA NOTA FISCAL |
| 41 | NÚMERO DA COMANDA |
| 42 | PLACA DO VEÍCULO |
| 43 | DIGITE QUILOMETRAGEM |
| 44 | QUILOMETRAGEM INICIAL |
| 45 | QUILOMETRAGEM FINAL |
| 46 | DIGITE PORCENTAGEM |
| 47 | PESQUISA DE SATISFAÇÃO (0 a 10) |
| 48 | AVALIE ATENDIMENTO (0 a 10) |
| 49 | DIGITE O TOKEN |
| 50 | DIGITE NÚMERO DO CARTÃO |
| 51 | NÚMERO DE PARCELAS |
| 52 | CÓDIGO DO PLANO |
| 53 | CÓDIGO DO PRODUTO |
Exemplo
int iCapturaCPF (char *pszCPF)
{
int iSt;
char sMsgNotify[32];
PPC_SetParam (PPC_INP_MSGIDX, “7”, 1);
PPC_SetParam (PPC_INP_MINDIG, “11”, 1);
PPC_SetParam (PPC_INP_MAXDIG, “11”, 1);
PPC_SetParam (PPC_INP_TIMEOUT, “30”, 2);
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, 12, pszCPF);
return iSt;
} Updated about 1 month ago