Biblioteca DLL - Entendendo o Fluxo de Chamadas
Optando por usar o Zoop PC como uma biblioteca DLL integrada ao seu projeto (ZoopSDKPC.dll embutido no projeto com Visual Studio) esta seção lhe dará uma ideia de como acontece o fluxo de chamadas trocados entre o seu projeto (mediados pela DLL) e o backend de pagamento Zoop:
-
Aplicação inicializa o SDK com ZoopAPI.initialize(...) especificando o marketplaceId, sellerId e o publishableKey (fixos por marketplace) identificador do estabelecimento comercial que realizará a cobrança.
-
Aplicação Inicia a cobrança chamando o método ZoopTerminalPayment.charge(...) especificando o tipo de cobrança: crédito a vista (credit), crédito parcelado (credit_with_installments) com o número de parcelas ou Débito (debit).
-
Aplicação Inicia o cancelamento de uma transação aprovada (estorno) chamando o métodoZoopTerminalVoidPayment.voidTransaction(...) especificando o tipo de cobrança: marketplaceId, sellerId, publishableKey e transactionId (Identificação da transação que é fornecida na callback PaymentSuccessful após realizar uma venda).
-
Aplicação responde a callbacks de mensagens que demandam interação com o usuário:
- ApplicationDisplayListener - Apresenta mensagens para o operador da Aplicação PDV métodos showMessage com ou sem detalhes).
- ExtraCardInformationListener - Responder a mensagens com solicitação de informações adicionais sobre o cartão, geralmente em transações com cartões de tarja magnética (extraCardInformation). Essas informações podem ser: 4 últimos digitos e/ ou CVV (CVC2, 3 números atrás do cartão) e/ ou data de expiração.
- TerminalPaymentListener - Contém as callbacks relacionadas ao fluxo de venda, sendo as callbacks, PaymentSuccessful, PaymentAborted, PaymentFailed e EndTransaction.
- Além disso, uma transação aprovada pode solicitar a assinatura do portador (cardholderSignatureRequested).
- VoidTransactionListener - Contém as callbacks relacionadas ao fluxo de estorno ( cancelamento de uma venda aprovada), sendo as callbacks, VoidTransactionSuccessful, VoidTransactionFailed e EndOfTransaction.
As mensagens são strings com formato JSON.
Abaixo o diagrama com o fluxo de troca de mensagens, que representa uma transação com cartão de tarja magnética, onde é pedido umas das callbacks de informações extras do cartão. (Last4DigitsRequested, ExpirationDateRequested, CVCRequested e HolderSignatureRequested)

Diagrama de Mensagens
No caso das callbacks ExtraCardInformation, aonde os 4 últimos digitos (cardLast4Digits), CVV ou CVV (cardCVCRequested) ou data de expiração (cardExpirationDate Requested) forem chamados, a aplicação deve responder mesmo que a resposta não seja informada pelo usuário/ operador ou que a Aplicação PDV não tenha implementado a resposta, pois a transação estará esperando esses dados para completar o processamento.
Updated almost 2 years ago