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.MessageHeader
object, withMessageClass
set to Device andMessageCategory
set 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 Text
contendo 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 Text
com seu próprio texto que, juntos, formam a resposta ou opção de menu.
O primeiro campoText
será exibido em negrito. Use uma string vazia paraText
nã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
EventNotification
comEventDetails
: 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
indicação de que a solicitação de entrada foi fechada. -
Se o usuário se recusou a responder (selecionou a tecla Cancel
), o
InputResult
temResponse.Result
: Failure eResponse.ErrorCondition
: Cancel. -
Se a entrada for recebida do terminal, o
InputResponse
tem umInputResult
com: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 é1
e todos os outros itens da matriz são0
.
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
InputResult
para o seu sistema para validação e uso posterior.