Biblioteca DLL - Passo a Passo + Vídeo Tutorial

Estes são os passos para utilizar a biblioteca DLL no seu projeto:

Sua aplicação irá basicamente chamar 3 métodos e implementar 1 interface para uma implementação inicial. Para o processamento de cartões magnéticos, outras interfaces / callbacks serão definidas / usadas para responder às necessidades específicas do cartão.

Mais detalhes sobre o fluxo de integração abaixo:

1) Inicialização (ao iniciar a aplicação)

ZoopAPI.initialize ​(, , );

Example:
ZoopAPI.initialize("ffffa5eeee47cccc8b22229d7777a3bb","8989894eee3434530909e9234565bffd", "zk_test_jhUYGlLGlOxxoF23FFoaRODf");

Sobre as Credenciais: Sua integração requer chaves de API diferentes para cada ambiente: teste e Produção. Para saber mais sobre credências clique aqui.

2) Implementando a Interface TerminalPaymentListener

Implemente a interface TerminalPaymentListener para receber notificações de status da transação,
solicitações e cobrança final / resultados da transação.

A interface possui 5 métodos. Todos eles explicados com mais detalhes na Interface TerminalPaymentListener.

public void paymentFailed (string joResponse):
Notifica o aplicativo que uma cobrança / transação falhou.

public void paymentSuccessful (string joResponse);
Notifica o aplicativo que uma cobrança foi aprovada.

public void paymentAborted ();
Notifica o aplicativo que a cobrança solicitada foi cancelada com sucesso no usuário
pedido.

public void endOfTransaction()
Notifica o aplicativo que o fim da transação

public void currentChargeCanBeAbortedByUser (boolean canAbortCurrentCharge);
Deprecated
Notifica o aplicativo se o aplicativo está autorizado a solicitar o estorno / cancelamento de
uma transação em andamento ou não. Isso pode ser usado para implementar uma interface de usuário que melhor reflete as condições internas da API de pagamento Zoop (gateway) (pode cancelar, botão ativado, não é possível cancelar, o botão está desativado).

❗️

Aviso

O cancelamento de crédito de uma transação com cartão após sua aprovação pode ter impacto na forma como um risco de vendedor é pontuado por empresas de processamento de cartões de crédito. Então, quando o pedido está completo - enviado para processamento - o cancelamento só pode ser feito mais tarde fazendo um cancelamento Operação. E a interface do usuário aceita o cancelamento ANTES de qualquer coisa ter sido enviada para gateway de pagamento para processamento, portanto, esse método de interface ajuda.

3) Realizando transações (Crédito, Débito, Outros)

Chame a cobrança do método de qualquer interface de terminal disponível. O primeiro parâmetro é um decimal com o valor a ser cobrado e o segundo é a opção de pagamento (0 a crédito, 1 a débito e 2 crédito parcelado).
Os terminais atuais que podem ser instanciados são: ZoopTerminal e classes usadas ZoopTerminalPayment.
O método responsável pela cobrançã é o ZoopTerminalPayment.charge .

4) Implementando a interface VoidTransactionListener

Implemente a interface VoidTransactionListener para receber notificações de status do estorno.

A interface possui 3 métodos. Todos eles explicados com mais detalhes na Interface TerminalPaymentListener.

public voidTransactionSuccessful(string joVoidedTransaction);
Notifica o estorno foi realizado com sucesso.

void voidTransactionFailed(string joResponse);
Notifica o aplicativo que o estorno falhou.

void endOfTransaction();
Notifica o aplicativo que o fim da transação

5) Implementando a interface ApplicationDisplayListener

Implemente a interface ApplicationDisplayListener para receber as mensagens do status do fluxo transacional.

A interface possui 2 métodos.

void showMessage(String sMessage, TerminalMessageType messageType);
Exibe uma mensagem informando em que momento está do fluxo transacional. O primeiro parâmetro traz a mensagem em português e a messageType retorna uma mensagem em inglês padronizada.

void showMessage(String sMessage, TerminalMessageType messageType, String messageExplanation);
Exibe uma mensagem informando em que momento está do fluxo transacional. O primeiro parâmetro traz a mensagem em português e a messageType retorna uma mensagem em inglês padronizada.
MessageExplanation, contém mais detalhes sobre o momento em que se encontra a transação.

6) Implementando a interface ExtraCardInformationListener

Implemente a interface ExtraCardInformationListener para obter informações extras para determinados tipos de cartões.

A interface possui 4 métodos.

void cardLast4DigitsRequested();

Notifica a aplicação que os 4 últimos digitos do cartão devem ser fornecidos. Esta callback notifica a aplicação.
É necessário criar uma interface de captura para receber os 4 dígitos e após isso chamar o método addCardLast4Digits passando o valor.

void cardExpirationDateRequested();

Notifica a aplicação que a data de expiração do cartão deve ser fornecido. Esta callback notifica a aplicação.
É necessário criar uma interface de captura para receber os dígitos e após isso chamar o método addCardExpirationDate passando o valor.

void cardCVCRequested();

Notifica a aplicação que o CVC (código de verificação) do cartão deve ser fornecido. Esta callback notifica a aplicação.
É necessário criar uma interface de captura para receber os dígitos e após isso chamar o método addCardCVC passando o valor.

7) Implementando a interface TransactionEventsListener

Implemente a interface TransactionEventsListener para obter o ClientTransactionId,
esse Id é criado no inicio de uma cobrança/venda. Esse Id é importante para a realização de uma reversão caso necessária.

OBS: Após a aprovação de uma cobrança/venda, é gerada um outro Id (transactionId), que é usado para realizar um estorno (cancelamento após uma cobrança/venda ser realizada).
O clientTransactionId, é usado, somente, na reversão.
A interface possui somente um método.

void onStartTransaction(String psClientTransactionId);

8) Exemplo de Associação Listener via Form

Abaixo um exemplo simples mostrando como setar os Listeners

//Em Program.cs

 Application.Run( new FormCharge());
 

 /*FormCharge.cs:

O ideal é ao montar um form de charge, por exemplo, derivar o mesmo das classes de Listener, deste modo:

*/

public partial class FormCharge : System.Windows.Forms.Form, TerminalPaymentListener,
        ApplicationDisplayListener, ExtraCardInformationListener, TransactionEventsListener,  VoidTransactionListener
        
{

        public FormCharge()
        {
            InitializeComponent();
            startCheckoutForm();
        }            
            
          
          public void startCheckoutForm()
            
          {
            
            // ...... code
            // ...... code
            // ...... code
            // ...... code
            // ...... code
            // ...... code
            
            ZoopAPI.initialize(("marketplaceId"), ("sellerId"),("publishableKey"));
            
            zoopTerminalPayment = new ZoopTerminalPayment();
            zoopTerminalPayment.setTerminalPaymentListener(this);
            zoopTerminalPayment.setApplicationDisplayListener(this);
            zoopTerminalPayment.setExtraCardInformationListener(this);
            zoopTerminalPayment.setTransactionEventsListener(this);
            zoopTerminalVoidPayment.setVoidPaymentListener(this);

    // uma vez associados,  usar para venda:

            zoopTerminalPayment.charge(oneCharge.iValueToChargeInCents, oneCharge.iPaymentType, oneCharge.iNumberOfInstallments);
    
    // e para estorno:
    
            zoopTerminalVoidPayment.voidTransaction(("marketplaceId"), ("sellerId"),("publishableKey"), sVoidTransactionId);
          }

}

9 - Solution de exemplo (Checkout Simples) em C#

O arquivo abaixo é um draft de um checkout simples que vc pode usar para estudar/interagir com nossa DLL.

Download draft

10 - Video tutorial (aplicação Console)

Preparamos este vídeo tutorial download para lhe guiar no processo de desenvolvimento através de um exemplo de uma aplicação Console em C# usando a DLL:


Did this page help you?