Respostas para a aplicação

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

Interface ExtraCardInformationListener

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, a aplicação deve 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.

  • void cardLast4DigitsRequested()

  • void cardExpirationDateRequested()

  • void cardCVCRequested()

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:

@Override
public void cardLast4DigitsRequested() {
  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      Button bOK = (Button) findViewById(R.id.buttonOK);
      bOK.setOnClickListener(new OnClickListener() {		
        @Override
        public void onClick(View v) {
          EditText last4Digits = (EditText) findViewById(R.id.editTextNumber);
          terminalPayment.addCardLast4Digits(last4Digits.getText().toString());
        }
      });
    }
  });
}

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:

@Override
public void cardExpirationDateRequested() {
  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      Button bOK = (Button) findViewById(R.id.buttonOK);
      bOK.setOnClickListener(new OnClickListener() {		
        @Override
        public void onClick(View v) {
          EditText expirationDate = (EditText) findViewById(R.id.textViewDate);
          terminalPayment.addCardExpirationDate(expirationDate.getText().toString());
        }
      });
    }
  });
}

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:

@Override
public void cardCVCRequested() {
  runOnUiThread(new Runnable() {
    @Override
    public void run() {
      Button bOK = (Button) findViewById(R.id.buttonOK);
      bOK.setOnClickListener(new OnClickListener() {		
        @Override
        public void onClick(View v) {
          EditText cvc = (EditText) findViewById(R.id.textViewCVC);
          terminalPayment.addCardCVC(cvc.getText().toString());
        }
      });
    }
  });
}

Retorno do resultado de Charge para operações de Pix

As chamadas chargePix() disponíveis na classe que instancia TerminalPayment invocarão assincronamente o método showMessage da sua Activity de charge passando pra ele os parametros :

showMessage(qrc, TerminalMessageType.TRANSACTION_PIX_BRCODE)

sendo o primeiro o código de barras QRCODE (BRCODE) definido no [Manual Brasileiro do Pix BRCODE] (https://www.bcb.gov.br/content/config/Documents/BR_Code_MANUAL_Version_2_May_2020.pdf) ,

que deverá ser demonstrado na tela para o usuário para pagamento enquanto aguarda (loop de espera) pelo retorno do sucesso ou falha da transação (recomendamos usar a biblioteca Android Zebra ZXwing para mostrar o mesmo pela facilidade de uso, mas pode ser outra a sua escolha)

O segundo parâmetro serve para identificar que os dados recebidos são um QRCODE Pix.