Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Peça a entrada numérica

Use uma solicitação de entrada para pedir a um cliente uma entrada numérica.

Aqui, descrevemos como você pode usar um InputRequest para pedir ao cliente ou à sua equipe que insira um valor numérico. Você pode usar isso, por exemplo, para obter o número de telefone de um comprador.

Faça uma solicitação de entrada de dígito

Para usar o terminal de pagamento para solicitar entrada numérica:

1.Faça uma solicitação POST para um endpoint da API Terminais, especificando:

-   `InputRequest.DisplayOutput`: Esta parte do corpo da solicitação define o que é mostrado no terminal:

    | Parâmetro | Requerimentos | Descrição |
    | :----     | :----:   | :----       |
    | `Device` | :white_check_mark: | **CustomerDisplay** |
    | `InfoQualify` | :white_check_mark: | **Display** |
    | `OutputContent.OutputFormat` | :white_check_mark: | **Text** |
    | `OutputContent.PredefinedContent.ReferenceID` | :white_check_mark: | **GetDigit** |
    | `OutputContent.OutputText` | :white_check_mark: | Uma matriz de um campo `Text` contendo seu próprio texto para mostrar no terminal. Em uma tela de retrato, limitada a cerca de 20 caracteres. Além do texto que você especificar, o terminal mostrará uma instrução sobre como confirmar a entrada. |

-   `InputRequest.InputData`: Esta parte do corpo da solicitação lida com a entrada do usuário:

    | Parâmetro | Requerimentos | Descrição |
    | :----     | :----:   | :----       |
    | `Device`  | :white_check_mark: | **CustomerInput** |
    | `InfoQualify` | :white_check_mark: | **Input** |
    | `InputCommand` | :white_check_mark: | **DigitString** |
    | `MaxInputTime` |  | (Integer) Tempo limite em segundos. Este é o momento em que o usuário conclui sua entrada. |
    | `InputData.DefaultInputString` |  Texto de espaço reservado para a caixa de entrada, para que o usuário saiba qual formato de entrada você está esperando. |

O exemplo a seguir pede ao cliente seu número de telefone.


{
    "SaleToPOIRequest":{
        "MessageHeader":{
            "ProtocolVersion":"3.0",
            "MessageClass":"Device",
            "MessageCategory":"Input",
            "MessageType":"Request",
            "ServiceID":"040",
            "SaleID":"POSSystemID12345",
            "POIID":"V400m-324688179"
        },
        "InputRequest":{
            "DisplayOutput":{
                "Device":"CustomerDisplay",
                "InfoQualify":"Display",
                "OutputContent":{
                    "OutputFormat":"Text",
                    "PredefinedContent":{
                        "ReferenceID":"GetDigit"
                    },
                    "OutputText":[
                        {
                            "Text":"Enter your zip code:"
                        }
                    ]
                }
            },
            "InputData":{
                "Device":"CustomerInput",
                "InfoQualify":"Input",
                "InputCommand":"DigitString",
                "MaxInputTime":30,
                "DefaultInputString":"e.g. 10003"
            }
        }
    }
}
SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
MessageHeader messageHeader = new MessageHeader();
saleToPOIRequest.setMessageHeader(messageHeader);

InputRequest inputRequest = new InputRequest();
DisplayOutput displayOutput = new DisplayOutput();
displayOutput.setDevice( DeviceType.CUSTOMER_DISPLAY );
displayOutput.setInfoQualify( InfoQualifyType.DISPLAY );
OutputContent outputContent = new OutputContent();
outputContent.setOutputFormat( OutputFormatType.TEXT );
PredefinedContent predefinedContent = new PredefinedContent();
predefinedContent.setReferenceID("GetDigit");
outputContent.setPredefinedContent(predefinedContent);

OutputText outputText = new OutputText();
outputText.setText("Enter your zip code:");
outputContent.getOutputText().add(outputText);
displayOutput.setOutputContent(outputContent);
inputRequest.setDisplayOutput(displayOutput);

InputData inputData = new InputData();
inputData.setDevice( DeviceType.CUSTOMER_INPUT );
inputData.setInfoQualify( InfoQualifyType.INPUT );
inputData.setInputCommand( InputCommandType.DIGIT_STRING );
inputData.setMaxInputTime( BigInteger.valueOf(30) );
inputData.setDefaultInputString("e.g. 10003");
inputRequest.setInputData(inputData);
saleToPOIRequest.setInputRequest(inputRequest);
terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
Para obter uma lista completa de campos que você pode passar em uma solicitação de entrada numérica, consulte a [referência da API Digit InputRequest](/point-of-sale/shopper-input/inputrequestdigitentrynexo).
  1. Aguarde até que o usuário forneça a entrada solicitada.

    A entrada fornecida não é validada em um formato.

    -Se a solicitação de entrada expirar, você receberá uma EventNotification com EventDetails: message=Did+not+receive+a+response+from+the+POI.

    • Se você fizer uma solicitação de pagamento enquanto a solicitação de entrada está aguardando a entrada no terminal, a solicitação de pagamento substitui a solicitação de entrada. Você recebe uma InputResponse indicando que a solicitação de entrada foi fechada.

    • Se o usuário se recusou a responder (selecionando a chave Cancel ), o InputResult tem Response.Result: Failure, Response.ErrorCondition: Cancel, e um campo vazio DigitInput.

    • Se a entrada for recebida do terminal, o InputResponse.InputResult contém:
      • Input.DigitInput: Os numerais que o usuário inseriu.
    Exemplo de resposta quando o cliente inseriu um número de telefone
    {
        "SaleToPOIResponse": {
            "InputResponse": {
                "InputResult": {
                    "Device": "CustomerInput",
                    "InfoQualify": "Input",
                    "Response": {
                        "Result": "Success",
                        "AdditionalResponse": "responseData=%7b%20%20%7d"
                    },
                    "Input": {
                        "DigitInput": "0687164125",
                        "InputCommand": "DigitString"
                    }
                },
                "OutputResult": {
                    "Device": "CustomerDisplay",
                    "InfoQualify": "Display",
                    "Response": {
                        "Result": "Success"
                    }
                }
            },
            "MessageHeader": {...}
        }
    }

    Para obter uma lista completa de campos que você pode receber em uma resposta de entrada numérica, consulte a referência da API Digit InputResponse.

  2. Passe os dados relevantes do InputResult para o seu sistema para validação e uso posterior.

Veja também