/verify und /settle zuständig.
Die Produktionsadresse des Facilitators von Ace Data Cloud lautet:
v2 Wire Vereinbarung
Der X402-Link von Ace Data Cloud verwendet vollständig die offizielle x402 v2 und akzeptiert keine v1X-Payment-Anforderungsheader mehr. Bei der Integration sind drei Punkte zu beachten:
- Der Anforderungsheader ist
PAYMENT-SIGNATURE, der Wert ist ein base64-kodiertes JSON-Envelope. - Die oberste Ebene des Envelopes muss
x402Version: 2sein und dasaccepted-Objekt muss das gewählteschemeundnetworkdeklarieren. networkverwendet die CAIP-2 Kennung (z. B.eip155:8453), Abkürzungen wiebasesind nicht zulässig.
PAYMENT-REQUIRED-Anforderungsheader, dessen Wert die base64-kodierte Herausforderung ist, um dem Client das Lesen der Zahlungsanforderung zu erleichtern, ohne den Body zu analysieren.
Kernschnittstellen
GET /supported
Unterstützte Netzwerke und Schemes anzeigen:
networkverwendet die CAIP-2 Kennung, nicht Abkürzungen wiebase,skale./supportedzeigt an, dass der Facilitator über die entsprechenden Validierungs- und Abrechnungsfähigkeiten verfügt.- Base, SKALE und Solana unterstützen
exact;uptowird derzeit nur auf Base angeboten. signerssind die Adressen, die der Facilitator zur Einreichung von Abrechnungstransaktionen verwendet.- Ob eine bestimmte API diese Optionen zulässt, hängt weiterhin von den
acceptsder API 402 ab.
POST /verify
Überprüfen, ob die vom Client übermittelte PAYMENT-SIGNATURE eine bestimmte Zahlungsanforderung erfüllt.
Anforderungstext:
paymentRequirements-Feld von v2 umfasst scheme, network, asset, amount, payTo, maxTimeoutSeconds und extra, wobei das Betragsfeld amount ist. Die API 402-Antwort enthält zusätzlich maxAmountRequired in accepts[], damit der Client das Limit ablesen kann, es gehört jedoch nicht zu den Feldern des Facilitator-Anforderungstextes.
Erfolgreiche Antwort:
PAYMENT-RESPONSE-Antwort für die Zahlung einer Produktionsbestellung enthält nach der Dekodierung das Abrechnungsergebnis. Das Ergebnis der Programmausführung für die Zahlung einer Base-Bestellung:
success=Truezeigt an, dass die Abrechnung des Facilitators erfolgreich war.transactionist der Hash der On-Chain-Transaktion, diepay_idder Bestellung wird ebenfalls in denselben Wert geschrieben.- Im Explorer kann die Überweisung von
1200000atomic USDC auf Base USDC eingesehen werden. errorReason=Nonezeigt an, dass bei dieser Abrechnung kein geschäftlicher Fehler zurückgegeben wurde.
isValid ist false. Die Geschäftseite sollte invalidReason lesen und nicht nur den HTTP-Statuscode betrachten.
POST /settle
Die bereits validierte Genehmigung auf der Blockchain abrechnen.
Der Anforderungstext ist im Wesentlichen identisch mit dem von /verify. Der Unterschied bei upto ist: Der paymentRequirements.amount wird beim Abrechnen auf den tatsächlichen Abrechnungsbetrag geändert; das Signaturlimit wird vom Facilitator in der Verifizierungsphase aufgezeichnet, und beim Abrechnen wird überprüft, dass der tatsächliche Betrag dieses Limit nicht überschreitet.
Erfolgreiche Antwort:
upto 0 beträgt, kann transaction eine leere Zeichenfolge sein, was bedeutet, dass keine On-Chain-Transaktion erforderlich ist.
Wie Ace Data Cloud Gateway den Facilitator verwendet
Der Link des Ace Data Cloud API Gateways ist wie folgt:- Der Client fordert zum ersten Mal die API an, ohne
AuthorizationundPAYMENT-SIGNATURE. - Gateway berechnet den geschätzten Preis der Anfrage und gibt 402 und
acceptszurück. - Der Client signiert und versucht es erneut mit
PAYMENT-SIGNATURE. - Gateway dekodiert
PAYMENT-SIGNATUREund wählt die passende Zahlungsanforderung aus. - Gateway ruft Facilitator
/verifyauf. - Nach erfolgreichem
/verifylässt Gateway die Anfrage an die Ziel-API weiter. - Nach der Rückgabe der Ziel-API ruft Gateway in der Phase
/recordFacilitator/settleauf. - Gateway schreibt den On-Chain-Transaktionshash in die verwendete Aufzeichnungsmetadaten.
exactin Schritt 7 den Betrag der Signatur abrechnen;uptoin Schritt 7 denamountbasierend auf dem tatsächlichen Verbrauch schreiben und dann den tatsächlichen Betrag abrechnen.
Eigene API-Anbindung
Wenn du deine eigene API X402-fähig machen möchtest, kannst du diese Struktur umsetzen:- Bereite für jede kostenpflichtige Schnittstelle
paymentRequirementsvor, die Netzwerk, Betrag, Empfangsadresse, Vermögensadresse und Signatur-Domain enthält. - Wenn die Anfrage kein
PAYMENT-SIGNATUREhat, gib HTTP 402 undacceptszurück. - Wenn die Anfrage ein
PAYMENT-SIGNATUREhat, dekodiere es in Base64, umpaymentPayloadzu erhalten. - Rufe den Facilitator
/verifyauf. - Führe die Geschäftslogik nach erfolgreicher Validierung aus.
- Rufe nach erfolgreichem Geschäft den Facilitator
/settleauf. - Speichere
payer,transaction,amount,networkzur Abrechnung.
paymentRequirements für /verify und /settle verwenden und sollte den vom Client zurückgegebenen Betrag, die Empfangsadresse oder die Vermögensadresse nicht vertrauen.
Replay-Schutz
Der Facilitator wird nonce aufzeichnen. Genehmigungen mit demselben nonce können nicht wiederholt validiert und abgerechnet werden. Das bedeutet:- Der Client sollte bei jeder Anfrage ein neues Envelope signieren;
- Wenn
/settleeine Transaktion eingereicht hat, aber vorübergehend nicht bestätigt ist, kann/settlemit demselben nonce erneut versucht werden, um eine idempotente Abrechnung durchzuführen; - Verwende dasselbe
PAYMENT-SIGNATUREnicht im Cache für mehrere API-Aufrufe.

