Pular para o conteúdo principal

Recursos

Lista de recursos disponíveis

Existem recursos disponíveis para cada tipo de operação. Para cada recurso, existe uma classe que representa o recurso e uma classe que representa uma lista de recursos. Essas classes são as classes de paginação: Paginator<T>.

Paginação

A classe Paginator<T> é uma classe que representa uma lista de recursos. Ela possui os seguintes métodos:

  • Future<List<T>> itemsAsync(): Obtém os itens da página atual.
  • Future<PageInfo> pageInfoAsync(): Obtém as informações da página atual.
  • void next(): Vai para a próxima página.
  • void previous(): Vai para a página anterior.

As funções next e previous atualizam uma informação da classe, e os dados só serão lidos da próxima vez que for chamado o método itemsAsync ou pageInfoAsync.

Charge

  • Charge: Representa uma cobrança.

Criar uma cobrança

// Cria uma charge
ChargeBuilder charge = new ChargeBuilder()
.value(100)
.comment("comment")
.correlationID("correlationId")
.destinationAlias("destinationAlias")
.sourceAccountId("sourceAccountId");

sdk.createChargeAsync(charge).get();

Obter uma cobrança

// Obtém uma cobrança pelo ID. string.
sdk.getChargeAsync(correlationID).get();

Remover uma cobrança

// Remove uma cobrança pelo ID. string.
sdk.deleteChargeAsync(correlationID).get();

PixQrCode

  • PixQrCode: Representa um pix qr code.

Criar um pix qr code

// Cria um pix qr code
PixQrCodeBuilder pixQrCode = new PixQrCodeBuilder()
.value(100)
.comment("comment")
.correlationID("correlationId")
.destinationAlias("destinationAlias")
.sourceAccountId("sourceAccountId");

sdk.createPixQrCodeAsync(pixQrCode).get();

Obter um pix qr code

// Obtém um pix qr code pelo ID. string.
sdk.getPixQrCodeAsync(correlationID).get();

Transação

  • Transaction: Representa uma transação.

Obter uma transação

// Obtém uma transação pelo ID. string.
sdk.getTransactionAsync(correlationID).get();

Conta

  • Account: Representa uma conta.

Obter uma conta

// Obtém uma conta pelo ID. string.
sdk.getAccountAsync(correlationID).get();

Obter uma lista de contas

// Obtém uma lista de contas.
sdk.getAccountsAsync().get();

Performar saque

// Performa um saque.
sdk.withdrawAsync(id, value).get();

Reembolso

  • Refund: Representa um reembolso.

Criar um reembolso

// Cria um reembolso
RefundBuilder refund = new RefundBuilder()
.value(100)
.comment("comment")
.correlationID("correlationId")
.destinationAccountId("destinationAccountId")
.sourceAccountId("sourceAccountId");

sdk.createRefundAsync(refund).get();

Obter um reembolso

// Obtém um reembolso pelo ID. string.
sdk.getRefundAsync(correlationID).get();

Webhook

  • Webhook: Representa um webhook.

Verificar assinatura de um webhook

Toda invocação de webhook em sua aplicação traz um cabeçalho HTTP chamado x-webhook-signature, que consiste na assinatura gerada utilizando a chave secreta da Woovi e o payload (corpo da requisição HTTP) do webhook. Ao receber esse cabeçalho, você pode validar se a assinatura é válida e prosseguir com o fluxo do webhook.

x-webhook-signature: lL2nnXgmLFGgxJ8+jCDguqouU4ucrIxYJcU5SPrJFaNcJajTJHYVldqc/z4YFIjAjtPEALe699WosgPY08W7CLpidvtm06Qwa4YMB0l/DcTS93O91NdSH/adjugEKiOb76Zj/0jB8mqOmWCFYbweOBa17bssuEkd5Lw7Q5L314Y=

Veja um exemplo de validação de assinatura.

Para verificar a assinatura de um webhook, você precisa do corpo da requisição, o cabeçalho x-webhook-signature e o conteúdo enviado no request.

// Verifica a assinatura de um webhook
import br.com.openpix.OpenSSL;

// The body of the request sent by the woovi servers
String payload = "...";

// The signature in the header `x-webhook-signature`
String signature = "...";

if OpenSSL.verify(payload, signature) {
// The signature is valid
} else {
// The signature is invalid
}

Criar um webhook

// Cria um webhook
WebhookBuilder builder = new WebhookBuilder()
.number(100)
.url("https://google.com")
.enableWebhook();

sdk.createWebhookAsync(builder).get();

Deletar um webhook

// Deleta um webhook pelo ID. string.
sdk.deleteWebhookAsync(correlationID).get();

Customer

  • Customer: Representa um customer.

Criar um customer

// Cria um customer
CustomerBuilder builder = new CustomerBuilder()
.name("name")
.email("[email protected]")
.taxIdNumber("947.761.930-04")
.phoneNumber("4299999-9999")
.address(address);

sdk.createCustomerAsync(builder).get();

Obter um customer

// Obtém um customer pelo ID. string.
sdk.getCustomerAsync(correlationID).get();

Pagamento

  • Payment: Representa um pagamento.

Criar um pagamento

// Cria um pagamento
PaymentBuilder payment = new PaymentBuilder()
.value(100)
.comment("comment")
.correlationID("correlationId")
.destinationAccountId("destinationAccountId")
.sourceAccountId("sourceAccountId");

sdk.createPaymentAsync(payment).get();

Obter um pagamento

// Obtém um pagamento pelo ID. string.
sdk.getPaymentAsync(correlationID).get();

6 KB