Autenticazione e chiavi API
Utilizzare le chiavi API pubbliche e private DEUNA nel contesto corretto client, server, commerciante e ambiente.
In questa pagina
Le credenziali DEUNA identificano il commerciante e l'ambiente utilizzato da un'integrazione. L'autorizzazione richiesta dipende dal punto di vista e dal chiamante, quindi controlla il pannello di autorizzazione nel catalogo degli endpoint prima di eseguire una richiesta.
Scegli la corretta credenziali#
| Credenziali | Dove appartiene | Cosa fa |
|---|---|---|
| Chiave API pubblica | Browser o SDK mobile | Inizialmente supporta l'interfaccia utente lato client e flussi di tokenizzazione. |
| Chiave API privata | Fiducia commerciante backend | Autorizza operazioni server-server mercantili attraverso X-Api-Key. |
| Accesso al cliente | Flusso di conformità al cliente | Aggiunge il contesto cliente firmato attraverso Authorization: Bearer … su endpoint che lo sostengono. |
| Sessione di amministratore | DEUNA Admin | Fornisce un accesso basato sul ruolo dell'operatore autorizzato; non è una credenziali API di integrazione. |
Autorizzazione del back-end del Merchant#
Operazioni di Merchant che utilizzano l'autorizzazione API-chiave si aspettano la chiave privata in X-Api-Key.
curl --request GET \
--url https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN \
--header "X-Api-Key: YOUR_PRIVATE_API_KEY"const response = await fetch("https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN", {
method: "GET",
headers: {
"X-Api-Key": "YOUR_PRIVATE_API_KEY"
}
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const data = await response.json();import requests
response = requests.request(
"GET",
"https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN",
headers={
"X-Api-Key": "YOUR_PRIVATE_API_KEY"
},
)
response.raise_for_status()
data = response.json()<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN",
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"X-Api-Key: YOUR_PRIVATE_API_KEY"
]
]);
$response = curl_exec($curl);
curl_close($curl);import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Example {
public static void main(String[] args) throws Exception {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN"))
.header("X-Api-Key", "YOUR_PRIVATE_API_KEY")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(
request, HttpResponse.BodyHandlers.ofString()
);
System.out.println(response.body());
}
}package main
import (
"fmt"
"io"
"net/http"
)
func main() {
request, err := http.NewRequest("GET", "https://api.sandbox.deuna.io/merchants/orders/ORDER_TOKEN", nil)
if err != nil { panic(err) }
request.Header.Set("X-Api-Key", "YOUR_PRIVATE_API_KEY")
response, err := http.DefaultClient.Do(request)
if err != nil { panic(err) }
defer response.Body.Close()
body, _ := io.ReadAll(response.Body)
fmt.Println(string(body))
}Alcuni endpoint accettano anche un Authorization intestazione per portare l'identità del cliente:
Authorization: Bearer USER_ACCESS_TOKENIl gettone del Bearer non sostituisce una chiave API privata richiesta. Inviarlo solo quando il documento di fine anno il supporto del cuscinetto e l'operazione ha bisogno di un contesto di cliente autenticato, come strumenti memorizzati o metodi di pagamento specifici per il cliente.
Ambienti#
Sandbox e produzione sono isolati. Ogni ambiente ha un proprio URL base, chiavi API, configurazione mercantile, connessioni, dati e endpoint webhook.
Testare l'integrazione completa con le credenziali di sandbox e la configurazione di test del fornitore.
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:
- La credenziale è presente nell'intestazione documentata.
- La chiave appartiene all'ambiente richiesto e commerciante.
- Il endpoint supporta il metodo di autorizzazione che hai inviato.
- Il token chiave o cliente non è scaduto o è stato revocato.
- 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#
Quando una richiesta autenticata supera il tasso di richiesta consentito, l'API ritorna 429 Too Many Requests. Honor Retry-After quando è presente, si ritiri invece di inviare una scoppio di ripetizioni, e riutilizzare la chiave e il corpo originale per lo stesso tentativo di pagamento. I limiti possono variare a seconda del conto e del punto finale.