Passa al contenuto principale
In questa pagina

Le credenziali di DEUNA rispondono a due domande diverse: Quale applicazione del commerciante sta effettuando la chiamata?, e, quando applicabile, Quale cliente autenticato lo sta utilizzando. Iniziare identificando il punto di partenza della richiesta e l'autorità necessaria, per poi confermare i requisiti esatti. catalogo degli endpoint.

Decidere quale credenziale utilizzare#

Porre le seguenti domande in ordine:

  1. La richiesta viene eseguita in un browser o in un'applicazione mobile? Utilizzare la chiave API pubblica o il contesto dell'applicazione documentato per l'SDK o l'endpoint. Non inserire la chiave privata in tale client.
  2. Il vostro backend esegue operazioni di commerciante? Utilizzare la chiave API privata in X-Api-Key per chiamate tra server, come la creazione, il recupero, il pagamento, il rimborso o l'annullamento di un ordine.
  3. È necessario che DEUNA riconosca il cliente autenticato? Aggiungere il token di accesso a breve durata del cliente come Authorization: Bearer … solo quando l'endpoint lo supporta. Questo fornisce alla richiesta il contesto specifico del cliente per risorse come i dati del profilo, gli indirizzi, gli strumenti di pagamento salvati o i flussi di pagamento autorizzati dal cliente.
Scenario di richiestaCredenzialiPerché
SDK o widget DEUNA in esecuzione in un browser o in un'app mobileChiave API pubblicaIdentifica l'applicazione del commerciante e l'ambiente, senza esporre l'autorità del backend del commerciante.
Backend del commerciante che chiama un endpoint del commercianteChiave API privataAutorizza l'operazione server-to-server di fiducia del commerciante.
Cliente autenticato che chiama un endpoint del clienteContesto di applicazione pubblico più token Bearer del cliente, come documentato dall'endpointIdentifica sia l'applicazione che il cliente per il quale l'operazione può accedere alle risorse.
Operazione del backend del commerciante che richiede anche il contesto del clienteChiave API privata più token Bearer del cliente, solo quando l'endpoint lo supporta esplicitamenteMantiene separate l'autorizzazione del commerciante e l'identità del cliente.
Flusso di cliente ospiteContesto di applicazione pubblico; nessun token Bearer a meno che l'endpoint non lo richiedaNon è presente un'identità cliente DEUNA autenticata da collegare.

Scegli la corretta credenziali#

CredenzialiDove appartieneCosa fa
Chiave API pubblicaBrowser, SDK mobile o altra applicazione cliente documentataInizializza widget, UI e flussi di tokenizzazione supportati, e identifica l'applicazione del commerciante e l'ambiente. Non autorizza operazioni private del commerciante.
Chiave API privataSolo backend del commerciante fidatoAutorizza operazioni server-server mercantili attraverso X-Api-Key.
Accesso al clienteFlusso di cliente autenticatoAggiunge l'identità del cliente tramite Authorization: Bearer … su endpoint che lo supportano. Non sostituisce una chiave API richiesta dall'endpoint.
Sessione di amministratoreDEUNA AdminFornisce un accesso basato sul ruolo dell'operatore autorizzato; non è una credenziali API di integrazione.

Chiave API pubblica: integrazione lato client#

Utilizzare la chiave API pubblica quando il codice di DEUNA viene eseguito in un ambiente non attendibile, come un browser o un'applicazione mobile. Utilizzi tipici includono l'inizializzazione di un widget o SDK di DEUNA e l'identificazione del commerciante e dell'ambiente per la tokenizzazione e le esperienze di pagamento lato client supportate.

La chiave pubblica è intenzionalmente sicura da includere nella configurazione del client, ma non è una chiave segreta e non concede l'autorizzazione per eseguire transazioni, rimborsi, annullamenti o altre operazioni lato server del commerciante. Mantenere la chiave pubblica associata all'ambiente sandbox o di produzione corretto.

Chiave API privata: autorizzazione server-a-server#

Utilizzare la chiave API privata quando il vostro backend attendibile chiama un endpoint del commerciante. Le operazioni del commerciante che utilizzano l'autorizzazione tramite chiave API richiedono la chiave privata in X-Api-Key, mai Authorization: Bearer ….

curl --request GET \
  --url https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN \
  --header "X-Api-Key: YOUR_PRIVATE_API_KEY"

Token di accesso del cliente: contesto di un utente autenticato#

Utilizzare un token di accesso del cliente quando l'operazione deve agire nel contesto di un cliente attivo di DEUNA e l'endpoint supporta l'autenticazione tramite token. Inviatelo nell' Authorization header:

Contesto clienti opzionaleHTTP
Authorization: Bearer USER_ACCESS_TOKEN

Il token Bearer è la risposta. quale cliente È in funzione. La chiave API fornisce le risposte. quale applicazione o backend del commerciante sta richiedendo l'accesso. A seconda dell'endpoint, una richiesta del cliente può quindi richiedere sia una chiave API per l'applicazione che il token Bearer del cliente.

Non inviare un token Bearer per un flusso di accesso ospite semplicemente perché l'header è disponibile. Non utilizzare una chiave privata del commerciante come token Bearer, né trattare un token del cliente come autorizzazione per operazioni riservate al commerciante. Se il tuo backend inoltra il contesto del cliente, fallo solo a un endpoint che supporti esplicitamente la combinazione.

Ambienti#

Sandbox e produzione sono isolati. Ogni ambiente ha il proprio URL di base, chiavi API, configurazione del commerciante, connessioni, dati e stato del pagamento.

Sandbox
https://api.sandbox.deuna.io

Testare l'integrazione completa con le credenziali di sandbox e la configurazione di test del fornitore.

Production
https://api.deuna.io

Elaborare pagamenti in tempo reale utilizzando le credenziali di produzione e di produzione.

Conservare e ruotare i tasti#

  • Conservare le chiavi private in un gestore segreto o in una configurazione runtime protetta.
  • Portare l'accesso al servizio e all'ambiente che hanno bisogno della chiave.
  • Ridurre le credenziali dai registri delle richieste e dagli allegati di supporto.
  • Distribuire una chiave di ricambio prima di rivocare la vecchia chiave, quindi il traffico di produzione continua in modo sicuro.
  • Coordinate l'emissione e la rotazione delle chiavi con il vostro operatore di amministrazione autorizzato o DEUNA TAM.

Fallimenti di autenticazione#

Un'autorizzazione di ritorno normalmente 401 Unauthorized o 403 Forbidden. Prima di riprovare, verificare:

  1. La credenziale è presente nell'intestazione documentata.
  2. La chiave appartiene all'ambiente richiesto e commerciante.
  3. Il endpoint supporta il metodo di autorizzazione che hai inviato.
  4. Il token chiave o cliente non è scaduto o è stato revocato.
  5. Qualsiasi contesto commerciale, commerciale o cliente richiesto è presente.

Non riprovare un errore di autorizzazione indefinitamente. Conservare la risposta request_id quando disponibile e includerlo quando contatta il supporto.

Limiti di tasso#

DEUNA non applica un singolo limite di richieste al secondo a tutte le integrazioni. L'API Gateway valuta i limiti configurati come un numero massimo di richieste all'interno di una finestra temporale. Il limite effettivo può variare in base al commerciante, all'ambiente, al metodo HTTP e all'endpoint.

Comportamento del GatewayCosa significa per la tua integrazione
AmbitoUn limite può essere applicato a un endpoint, condiviso tra endpoint che utilizzano lo stesso servizio backend, o applicato a livello di gateway.
Bucket di trafficoLe richieste possono essere raggruppate per ID commerciante, chiave API, token Bearer del cliente, indirizzo IP di origine o un altro header di richiesta configurato. Se l'identità prevista è assente, alcune regole ricorrono all'indirizzo IP di origine.
FinestraOgni regola definisce sia il numero massimo di richieste consentite che la durata della finestra di conteggio. Non presumere che tutti gli endpoint utilizzino la stessa finestra.
Copertura del percorsoUn limite specifico per percorso viene applicato solo quando una regola è configurata per quel metodo e endpoint. Le misure di sicurezza a livello di piattaforma possono comunque bloccare il traffico in caso di sovraccarico.

Quando una richiesta supera un limite applicabile, il gateway restituisce 429 Too Many Requests con Retry-After header. La risposta a livello di percorso ha la seguente forma:

Risposta per il limite di velocitàHTTP
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
Retry-After: 1

{
  "error": "rate_limit_exceeded",
  "message": "maximum requests",
  "code": 429,
  "endpoint": "/merchants/orders",
  "total_requests": 101,
  "retry_after": "1s"
}

I campi di risposta possono differire quando una misura di sicurezza a livello di gateway rifiuta la richiesta. Considerare lo stato HTTP e Retry-After header come autorevoli.

Maniglia 429 Gestire le risposte in modo sicuro

  1. Sospendere l'invio di richieste per almeno il numero di secondi specificato in Retry-After.
  2. Riprovare con backoff esponenziale e jitter invece di rilasciare immediatamente il traffico in attesa come un nuovo picco.
  3. Per la stessa operazione di pagamento, utilizzare la chiave idempotenza originale e lo stesso corpo della richiesta.
  4. Coordinare il throttling tra worker e istanze dell'applicazione; i loop di retry a livello di processo possono superare collettivamente un limite condiviso per merchant o endpoint.
  5. Se 429 Le risposte continuano dopo la riduzione del traffico, conservando il corpo della risposta e l'ID della richiesta, quindi contattare il supporto DEUNA o il Technical Account Manager (TAM).

Richiedere un aumento del limite

Chiedere al supporto DEUNA o al TAM di rivedere il limite prima di un aumento pianificato del traffico. Includere:

  • L'ambiente e l'ID del merchant.
  • I metodi HTTP e gli endpoint interessati.
  • I tassi di richiesta sostenuti e di picco previsti, la durata del picco e la data di implementazione pianificata.
  • Gli indirizzi IP pubblici o i CIDR di uscita utilizzati dai sistemi del merchant che chiamano DEUNA.

Non includere API key, token Bearer o altre informazioni riservate nelle richieste di supporto.

Continua#