Aqui, descrevemos como você pode usar um InputRequest para mostrar um menu com várias opções ou uma pergunta de múltipla escolha e permitir que o usuário selecione uma opção. Você pode usar isso, por exemplo, para criar uma pesquisa de cliente.
Faça uma solicitação de entrada de menu
Para usar o terminal de pagamento para mostrar um menu com várias opções:
- 
Faça uma solicitação POST para um endpoiont da API de Terminais, especificando: - 
The standard SaleToPOIRequest.MessageHeaderobject, withMessageClassset to Device andMessageCategoryset to Input.Parameter Required Description ProtocolVersion 3.0 MessageClass Device MessageCategory Input MessageType Request ServiceID Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal ( POIID) being used.SaleID Your unique ID for the system where you send this request from. POIID The unique ID of the terminal to send this request to. Format: [device model]-[serial number]. 
 - 
InputRequest.DisplayOutput: Esta parte do corpo da solicitação define o que é mostrado no terminal:Parâmetro Requerimentos Descrição Device CustomerDisplay InfoQualify Display OutputContent.OutputFormat Text OutputContent.PredefinedContent.ReferenceID MenuButtons OutputContent.OutputText Uma matriz de um campo Textcontendo seu próprio texto para mostrar no terminal. Use para especificar a pergunta ou o nome do menu.
- 
InputRequest.MenuEntry: Uma matriz de até 15 itens que representam as opções de escolha. O terminal mostra esses itens como uma lista rolável de caixas que o usuário pode tocar para selecionar. Cada item da matriz tem:Parâmetro Requerimentos Descrição OutputFormat Text OutputText Uma matriz de três campos Textcom seu próprio texto que, juntos, formam a resposta ou opção de menu.
 O primeiro campoTextserá exibido em negrito. Use uma string vazia paraTextnão usados.
 Por exemplo, você pode escrever uma resposta curta no primeiro campo, a resposta longa no segundo campo e não usar o terceiro campo. Ou você pode usar os três campos para o nome do artigo, descrição e rótulo.
- 
InputRequest.InputData: Esta parte do corpo da solicitação lida com a entrada do usuário:Parâmetro Requerimentos Descrição Device CustomerInput InfoQualify Input InputCommand GetMenuEntry MaxInputTime(Integer) Tempo limite em segundos. Este é o momento em que o usuário conclui sua entrada. 
 O exemplo a seguir pede ao cliente para responder a uma pergunta da pesquisa.. Para obter uma lista completa de campos que você pode passar em uma solicitação de entrada de menu, consulte a referência da API Menu InputRequest. 
- 
- 
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 EventNotificationcomEventDetails: 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 InputResponseindicação de que a solicitação de entrada foi fechada.
- 
Se o usuário se recusou a responder (selecionou a tecla Cancel  ), o ), oInputResulttemResponse.Result: Failure eResponse.ErrorCondition: Cancel.
- 
Se a entrada for recebida do terminal, o InputResponsetem umInputResultcom:- Input.MenuEntryNumber: que indica a opção que o usuário selecionou. Por exemplo, se a terceira opção foi selecionada, o terceiro item da matriz é- 1e todos os outros itens da matriz são- 0.
 
 Para uma lista completa de campos que você pode receber em uma resposta de entrada de pesquisa, consulte a referência da API Menu InputResponse. 
- 
- 
Passe os dados relevantes do InputResultpara o seu sistema para validação e uso posterior.