/verify et /settle du Facilitateur.
L’adresse de production du Facilitateur d’Ace Data Cloud est :
Conventions v2 wire
Le lien X402 d’Ace Data Cloud utilise entièrement la version officielle x402 v2 et n’accepte plus les en-têtes de requêteX-Payment v1. Lors de l’intégration, il y a trois points à noter :
- L’en-tête de requête est
PAYMENT-SIGNATURE, la valeur est un envelope JSON encodé en base64. - Le niveau supérieur de l’envelope doit être
x402Version: 2, et déclarer leschemeet lenetworkchoisis avec l’objetaccepted. - Le
networkutilise l’identifiant CAIP-2 (par exempleeip155:8453), il ne peut pas être écrit sous forme d’abréviations commebase.
PAYMENT-REQUIRED, dont la valeur est l’encodage base64 du même contenu de défi, facilitant la lecture des exigences de paiement par le client sans analyser le corps.
Interfaces principales
GET /supported
Voir les réseaux et schemes supportés :
- Le
networkutilise l’identifiant CAIP-2, pas des abréviations commebase,skale. /supportedindique que le Facilitateur possède les capacités de validation et de règlement correspondantes.- Base, SKALE et Solana supportent
exact;uptoest actuellement proposé uniquement sur Base. signersest l’adresse utilisée par le Facilitateur pour soumettre les transactions de règlement.- La possibilité d’utiliser ces options pour une API spécifique dépend toujours des
acceptsde cette API.
POST /verify
Vérifie si le PAYMENT-SIGNATURE transmis par le client satisfait une exigence de paiement donnée.
Corps de la requête :
paymentRequirements de v2 est scheme, network, asset, amount, payTo, maxTimeoutSeconds et extra, le champ de montant est amount. La réponse API 402 renverra également maxAmountRequired pour que le client puisse lire la limite, mais cela ne fait pas partie des champs du corps de la requête du Facilitateur.
Réponse de succès :
PAYMENT-RESPONSE pour le paiement de commande de production contient le résultat du règlement après décodage. Résultat de l’exécution du programme de paiement de commande Base :
success=Trueindique que le règlement du Facilitateur a réussi.transactionest le hash de la transaction sur la chaîne, l’pay_idde la commande est également écrit avec la même valeur.- Sur l’explorateur, on peut voir le transfert de
1200000atomic USDC de Base USDC. errorReason=Noneindique qu’aucune erreur commerciale n’a été retournée lors de ce règlement.
isValid est false. Le côté commercial doit lire invalidReason, et ne pas se contenter de vérifier le code d’état HTTP.
POST /settle
Règle l’autorisation déjà vérifiée sur la chaîne.
Le corps de la requête est essentiellement le même que pour /verify. La différence pour upto est que : paymentRequirements.amount est réécrit avec le montant réel lors du règlement ; la limite de signature est enregistrée par le Facilitateur lors de la phase de vérification, et lors du règlement, le montant réel ne doit pas dépasser cette limite.
Réponse de succès :
upto est 0, transaction peut être une chaîne vide, indiquant qu’aucune transaction sur la chaîne n’est nécessaire.
Comment Ace Data Cloud Gateway utilise le Facilitateur
Le lien de l’API Gateway d’Ace Data Cloud est le suivant :- Le client fait une première requête API, sans
AuthorizationniPAYMENT-SIGNATURE. - Le Gateway calcule le prix estimé de la requête, renvoie 402 et
accepts. - Le client signe et renvoie avec
PAYMENT-SIGNATURE. - Le Gateway décode le
PAYMENT-SIGNATURE, choisit l’exigence de paiement correspondante. - Le Gateway appelle le Facilitateur
/verify. - Après le succès de
/verify, le Gateway laisse passer la requête vers l’API cible. - Après le retour de l’API cible, le Gateway appelle le Facilitateur
/settleà l’étape/record. - Le Gateway écrit le hash de la transaction sur la chaîne dans les métadonnées d’utilisation.
exactdans l’étape 7 pour le montant de la signature de règlement ;uptodans l’étape 7 pour écrireamounten fonction de l’utilisation réelle, puis régler le montant réel.
Comment intégrer votre propre API
Si vous souhaitez que votre API prenne en charge X402, vous pouvez mettre en œuvre cette structure :- Préparez
paymentRequirementspour chaque interface de paiement, incluant le réseau, le montant, l’adresse de réception, l’adresse d’actif et le domaine de signature. - Si la requête n’a pas de
PAYMENT-SIGNATURE, retournez HTTP 402 etaccepts. - Si la requête a un
PAYMENT-SIGNATURE, décodez en Base64 pour obtenirpaymentPayload. - Appelez le Facilitator
/verify. - Après une validation réussie, exécutez la logique métier.
- Après le succès de l’opération, appelez le Facilitator
/settle. - Enregistrez
payer,transaction,amount,networkpour la réconciliation.
paymentRequirements pour appeler /verify et /settle, ne faites pas confiance aux montants, adresses de réception ou adresses d’actif renvoyés par le client.
Protection contre la répétition
Le Facilitator enregistrera le nonce. Une autorisation avec le même nonce ne peut pas être validée et réglée plusieurs fois. Cela signifie :- Le client doit signer une nouvelle enveloppe à chaque requête ;
- Si
/settlea soumis une transaction mais n’est pas encore confirmée, vous pouvez réessayer/settleavec le même nonce pour une réconciliation idempotente ; - Ne mettez pas en cache le même
PAYMENT-SIGNATUREpour plusieurs appels API.

