Respostas para a aplicação

O fluxo de resposta dos nossos SDKs são sempre realizados através de "Protocols" que devem ser implementados pela aplicação. Para o iOS, estes "Listeners" devem ser chamados no seus "Controllers" para que sejam executados quando necessário, considerando as necessidades do fluxo de pagamento.

Interface ExtraCardInformationProtocol

Este "Listener" apresenta os "callbacks" que serão executados quando o fluxo de pagamento necessita de informações adicionais do cartão utilizado. Sendo assim, sua aplicação deve implementar tais "callbacks" provendo formas de requisição de informações ao usuário, como caixas de texto por exemplo. Assim que as informações forem fornecidas pelo usuário da aplicação, em seguida deverá encaminhar estas informações para o SDK através de seus respectivos métodos disponíveis na classe ZoopTerminalPayment.

A seguir, os 3 "callbacks" presentes neste "Listener". Detalharemos cada um deles em sequência.

  • cardLast4DigitsRequested

Este "callback" deve requisitar os 4 últimos dígitos do cartão utilizado no pagamento. O parâmetro fornecido pelo usuário deve ser convertido em uma "String" de 4 caracteres e encaminhado ao SDK através do método "addCardLast4Digits(String last4Digits)" da classe ZoopTerminalPayment.

A seguir, um exemplo de código:

func cardLast4DigitsRequested(){
  DispatchQueue.main.async {
      self.showAlertToRetrieveTransactionExtraInfo(
                       type: .last4Digits, 
                       message: "Informe os 4 últimos dígitos do cartão:", 
                       textFieldPlaceholder: "1234"
                      ) { (text) in
         if let text = text {
             do {
                try self.zoopTerminalPayment?.addCardLast4Digits(sLast4Digits: text)
             } catch {
                        
             }
          }
       }
   }
}
  • cardExpirationDateRequested

Este "callback" deve requisitar a validade do cartão utilizado no pagamento. O parâmetro fornecido pelo usuário deve ser convertido em uma "String" no formato MMAA (mês com 2 dígitos e ano com 2 dígitos). Logo em seguida, deve-se encaminhar este parâmetro ao SDK através do método addCardExpirationDate(String expirationDate) da classe ZoopTerminalPayment.

A seguir, um exemplo de código:

func cardExpirationDateRequested(){
   DispatchQueue.main.async {
        self.showAlertToRetrieveTransactionExtraInfo(
                        type: .expirationDate, 
                        message: "Informe a data de validade do cartão:", 
                        textFieldPlaceholder: "mm/aaaa") { (text) in
                if let text = text {
                    do {
                        try 
         
         
         
   self.zoopTerminalPayment?.addCardExpirationDate(sCardExpirationDate: text)
                    } catch {
                        
                    }
                }
            }
        }
    }
  • cardCVCRequested

Este "callback" deve requisitar o código verificador do cartão utilizado no pagamento, normalmente disponível no verso do cartão. O parâmetro fornecido pelo usuário deve ser convertido em uma "String". Logo em seguida, deve-se encaminhar este parâmetro ao SDK através do método "addCardCVC(String cvc)" da classe ZoopTerminalPayment.

A seguir, um exemplo de código:

func cardCVCRequested(){
     DispatchQueue.main.async {
           self.showAlertToRetrieveTransactionExtraInfo(
                      type: .cvc, 
                      message: "Informe o Código de Seguranca impresso no cartão:",             
                      textFieldPlaceholder: "Código de Segurança") { (text) in
                if let cvc = text {
                    do {
                        try self.zoopTerminalPayment?.addCardCVC(sCardCVC: cvc)
                    } catch {
                        print("CVC error: \(error)")
                    }
                }
            }
        }
    }