Aqui, descrevemos como você pode usar um InputRequest
para mostrar um prompt no terminal de pagamento pedindo ao cliente que confirme algo desenhando sua assinatura no visor.
Os exemplos a seguir mostram a aparência da tela com uma assinatura desenhada em telas de terminal em paisagem e retrato.
Usando os botões na tela, o cliente pode cancelar, limpar ou confirmar sua assinatura..
Em alguns modelos de terminal, você pode incluir texto adicional abaixo do cabeçalho, por exemplo, para explicar por que está pedindo ao cliente sua assinatura. Nos terminais M400, e280 e e285p, o texto adicional é ignorado.
Faça uma solicitação de entrada de assinatura
Para usar o terminal de pagamento para pedir a um cliente que forneça sua assinatura:
-
Faça uma solicitação POST para um endpoint da API de Terminais, especificando:
-
MessageHeader
: the standardSaleToPOIRequest.MessageHeader
object. Specify: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
GetSignature OutputContent.OutputText
Uma matriz de dois campos Text
contendo seu próprio texto para mostrar no terminal:- 1: O cabeçalho. Em uma tela de retrato, isso é limitado a cerca de 20 caracteres.
- 2: Use um valor vazio ou especifique um texto adicional.
Nos terminais dos terminais M400, e280 e e285, o texto adicional é ignorado, mas você ainda precisa incluir o segundo campoText
com um valor vazio.
-
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
GetConfirmation MaxInputTime
(Integer) Tempo limite em segundos. Este é o momento em que o usuário conclui sua entrada.
O exemplo a seguir pede ao cliente sua assinatura.
Para obter uma lista completa de campos que você pode passar em uma solicitação de entrada de assinatura, consulte a referência da API Signature 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 a entrada for recebida do terminal, o
InputResponse
tem umInputResult
com:Response.AdditionalResponse
: A assinatura fornecida pelo cliente.Input.ConfirmedFlag
: true indica que o cliente confirmou seu acordo selecionando Confirm .Input.ConfirmedFlag
: false significa que o cliente recusou selecionando Cancel .
Para obter uma lista completa de campos que você pode receber em uma resposta de entrada de assinatura, consulte a referência da API Signature InputResponse.
-
-
Passe os dados relevantes do
InputResult
para o seu sistema para validação e uso posterior.