Menu AuthGuardCentro de ajuda
Englishauthguard.pt

Programadores · SDKs

SDK Java

  • 1 min de leitura
  • SaaS · Instalação própria

O artefacto pt.authguard:authguard-sdk usa Nimbus JOSE+JWT. Ainda não está publicado: construa-o a partir da pasta sdks/java do repositório e instale-o no seu repositório Maven interno.

Dependência

<dependency>
  <groupId>pt.authguard</groupId>
  <artifactId>authguard-sdk</artifactId>
  <version>0.1.0</version>
</dependency>

Criar um pedido e esperar

IntentsClient client = IntentsClient.builder()
        .baseUrl("https://identity.example.com")
        .clientId("1c9a2b3d-4e5f-4a6b-9c7d-8e9f0a1b2c3d")
        .clientSecret(System.getenv("AUTHGUARD_CLIENT_SECRET"))
        .build();

CreateIntentRequest request = CreateIntentRequest.builder("invoice.pay")
        .subjectEmail("ana@example.com")
        .externalReference("INV-42")
        .expiresInSeconds(900)
        .field("amount", new MoneyValue("1250.00", "EUR"))
        .build();

CreateIntentResult created = client.createIntent(request, "erp-INV-42-attempt-1");
Intent intent = created.intent();
System.out.println(intent.comparisonCode());   // mostre-o junto à operação

Intent decided = client.waitForDecision(intent.intentId());
if (decided.state() == IntentState.APPROVED) {
    // execute a operação
}

waitForDecision espera até 15 minutos, com intervalos de 2 segundos a duplicar até 30. Prefira webhooks em produção; cancelIntent dá 409 quando o pedido já terminou.

Webhooks

O SDK verifica a assinatura a partir dos cabeçalhos e dos bytes do corpo (por exemplo, num controlador Spring que recebe byte[]). Elimine duplicados pelo webhook-id.

Erros

Os erros não são verificados e estendem AuthGuardException; uma falha da API é uma ApiException com o estado, o code, a mensagem e o campo, e um Retry-After longo é devolvido com getRetryAfterSeconds(). Decida pelo código, não pelo texto da mensagem; veja Erros e limites.

Códigos de erro deste artigo

Referência do artigodev-sdk-javaindique-a ao suporte para identificar este artigo. Verificado contra o produto no commit 5f6607a8.