Öffentlichen Einstiegspunkt prüfen
Facilitator-Fähigkeitserklärung:facilitator, supportedKinds und die Protokollendpunkte zurückgegeben werden, sind die Fähigkeitsmetadaten normal. Die API-Ressourcenerkennung wurde eingestellt; rufen Sie die Ziel-API direkt auf und richten Sie sich nach der Echtzeit-402-Antwort.
Vom Facilitator unterstützte Fähigkeiten:
kinds zurückgegeben wird, ist der Facilitator-Einstiegspunkt normal.
402 accepts prüfen
Senden Sie eine nicht kostenpflichtige Anfrage ohne Authentifizierung:
accepts in der Rückgabe das Netzwerk enthält, das Sie verwenden möchten. network ist eine CAIP-2-Kennung:
eip155:8453+exact(Base)eip155:8453+upto(Base, nachgelagerte Verbrauchsmessung)eip155:1187947933+exact(SKALE)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp+exact(Solana)
Erweiterte X402Client-Validierungstools ausführen
Das X402Client-Repository stellt erweiterte Validierungstools bereit, die zur Bestätigung der 402-Antwortauswahl, der Signaturerstellung, des paid retry und des On-Chain-settlement verwendet werden können. Sie benötigen eine finanzierte Wallet, RPC, einen privaten Schlüssel und Entwicklungsabhängigkeiten. Für die normale Geschäftsintegration wird empfohlen, vorrangig das TypeScript- oder Python-SDK zu verwenden; führen Sie diese Tools nur aus, wenn Signatur- oder On-Chain-Abrechnungsprobleme lokalisiert werden müssen. Repository-Adresse: https://github.com/AceDataCloud/X402Client- Die 402-Antwort der ersten Anfrage.
- Die ausgewählte payment requirement.
- Die Zusammenfassung der signierten
PAYMENT-SIGNATURE. - Den HTTP-Status und Antworttext nach dem Wiederholungsversuch.
- Die On-Chain-settlement-Transaktion oder bei einem Fehler den vom Facilitator angegebenen Fehlergrund.
PAYMENT-SIGNATURE-Werte an Log-Systeme oder Tickets.
Beispiel für Ergebnisse der öffentlichen API-Validierung:
- SKALE
exact, Baseexact, Solanaexactund Baseuptohaben alle den paid retry von HTTP 402 zu HTTP 200 abgeschlossen. - Die On-Chain-Transaktion von SKALE
exactist im SKALE explorer auffindbar, und der Abrechnungsbetrag beträgt0.095215USDC. - Die On-Chain-Transaktion von Base
exactist in BaseScan auffindbar, und der Abrechnungsbetrag beträgt95215atomic USDC. - Das Signaturlimit von Base
uptobeträgt95215atomic USDC, aber das tatsächliche On-Chain-settlement beträgt3atomic USDC, was zeigt, dass die nachgelagerte Verbrauchsmessung nach dem tatsächlichen Verbrauch abrechnet. - Der Solana-Pfad hat paid retry und Modellausgabe bestätigt. Öffentliche RPCs können rate-limited sein; wenn eine strikte On-Chain-Abstimmung erforderlich ist, verwenden Sie bitte Ihren eigenen Solana-RPC oder bestätigen Sie die Transaktionssignatur anhand der Abrechnungsaufzeichnungen der Plattform.
SDK smoke test
Die erweiterten Validierungstools werden zur Prüfung von Signaturen und On-Chain-Abrechnungen verwendet. Auf Geschäftsseite sollte außerdem ein SDK smoke test durchgeführt werden, um zu bestätigen, dass der Anwendungscode 402 automatisch über den payment handler verarbeiten kann. Unten werden nur die Kernfragmente gezeigt; im vollständigen Code müssen Wallet, provider und import ergänzt werden. TypeScript:exact. SKALE bietet derzeit nur exact an und rechnet zum festen, gemäß 402 angebotenen Betrag ab, der nicht entsprechend dem tatsächlichen Token-Verbrauch reduziert wird. Chat Completions gehören zu Szenarien mit tokenbasierter Abrechnung; bei der produktiven Integration wird empfohlen, auf Base umzusteigen und preferScheme: 'upto' zu übergeben, um nach dem tatsächlichen Verbrauch abzurechnen.
Die Programmausgabe des SDK-Smoketests:
- Das TypeScript SDK verarbeitet 402, Signatur und Wiederholung automatisch über
createX402PaymentHandlerund erhält schließlichADC_TS_SDK_X402_OK. - Das Python SDK führt über
create_x402_payment_handlerdenselben Ablauf aus und erhält schließlichADC_PY_SDK_X402_OK. - Beide Smoke-Tests verwenden den SKALE-Payer
0xd0479FA9FD8C678303d477433d24C15e3723CC1C. - Das vom Python SDK zurückgegebene Objekt ist ein
dict; im Beispiel kannres["choices"][0]["message"]["content"]verwendet werden, um den Inhalt auszulesen.
E2E der Bestellzahlung
Die Bestellzahlung verwendet die Plattform-API vonplatform.acedata.cloud und benötigt ein Plattformkonto-Token. Der vollständige Ablauf ist: Eine Pending-Bestellung erstellen, mit POST /api/v1/orders/{order_id}/pay/ 402 auslösen und dann mit PAYMENT-SIGNATURE wiederholen.
Beispiel für das Verifizierungsergebnis einer Kleinbestellzahlung:
Die folgenden Transaktionsaufzeichnungen sind historische, tatsächlich getestete Beispiele unter der alten Richtlinie; Beträge und Transaktions-Hashes bleiben unverändert erhalten. Neue X402-Bestellungen erhalten keinen Zahlungsartenrabatt mehr; verwenden Sie bitte den amount in der jeweiligen 402-Antwort als Grundlage für Signatur und Zahlung.
- Nach der Erstellung der Bestellung ist der Bestellstatus
Pendingund der Preis beträgt1.26. - Die erste
pay/-Anfrage gibt HTTP 402 zurück;acceptsenthält Baseexactund Solanaexact, beide mit einem Betrag von1200000atomic USDC. - Nach der Wiederholung mit Base
PAYMENT-SIGNATUREwird HTTP 200 zurückgegeben, der Bestellstatus ändert sich zuFinishedundpay_wayistX402. - Nach der Dekodierung von
PAYMENT-RESPONSEwerdensuccess=True,network=basesowie derselbe Transaktions-Hash angezeigt. - Auf BaseScan ist der Transaktionsstatus
1, und der Überweisungsbetrag beträgt1200000atomic USDC, also1.2USDC. - Der Erstellungspreis von
1.26wurde während der alten X402-Zahlungsrabattrichtlinie bezahlt; der endgültige Signatur- und Abrechnungsbetrag beträgt1.2USDC.
Authorization: Bearer {platform_token} enthält oder die Bestellung nicht zum aktuellen Konto gehört, schlägt sie auf der Plattformberechtigungsebene fehl; dies unterscheidet sich von der kontolosen X402-API bei direktem Aufruf von x402.acedata.cloud.
Häufige Fehler
Base-upto-Checkliste
upto wird derzeit nur auf Base (eip155:8453) bereitgestellt. SKALE bietet nur exact an. Da die upto-Signatur weitere EVM-Typed-Data-Parameter bindet, sollte bei der Integration besonders bestätigt werden, dass die Echtzeitfelder in der 402-Antwort vollständig mit der Client-Signatur übereinstimmen.
upto invalid_upto_evm_payload_invalid_signature zurückgibt, prüfen Sie vorrangig:
extra.chainIdim von der API zurückgegebenen Eintrageip155:8453+upto(sollte8453sein).- Die von der API zurückgegebene
extra.facilitatorAddress. - Die von
https://facilitator.acedata.cloud/supportedzurückgegebene Base-upto-Facilitator-Adresse. - Permit2-Domain, Spender, USDC-Vertrag und Signaturkonto.
- Ob die Wallet Base USDC bereits für Permit2 genehmigt hat.
upto bindet gleichzeitig Permit2-Domain, Chain ID, Spender, Empfängeradresse, Facilitator-Adresse und validAfter. Bei jeder Abweichung stellt der Facilitator einen falschen Signer wieder her und gibt dadurch invalid signature zurück. Wenn diese alle übereinstimmen, aber weiterhin 402 zurückgegeben wird, prüfen Sie als Nächstes die Permit2-Allowance; bei fehlender Autorisierung wird PERMIT2_ALLOWANCE_REQUIRED zurückgegeben.
Verifizierungsinformationen speichern
Bei einer vollständigen Verifizierung mindestens speichern:- API-Pfad und Anfragekörper-Zusammenfassung;
- ausgewähltes Netzwerk und Schema;
maxAmountRequired;- Wallet-Adresse des Zahlers;
- endgültiger HTTP-Status;
- Modellausgabe oder Aufgaben-ID in der Antwort;
- Link zur Settlement-Transaktion;
- Gateway-Trace-ID oder Plattform-Nutzungsprotokoll-ID.
PAYMENT-SIGNATURE, vollständige EIP-712-Signatur oder Seed-Phrase speichern.
Strukturierte Zahlungsfehler
Fehler bei signiertem X402 geben unterextensions.acedatacloud.paymentError einen stabilen code, sichere Interpolationsparameter, Phase und Wiederholbarkeitskennzeichen zurück. Priorisieren Sie bei der Fehlerbehebung diese Struktur, analysieren Sie nicht den englischen error der obersten Ebene und verlangen Sie von Benutzern weder Wallet-Signaturen noch den Originaltext von On-Chain-Simulationen.
charged: false: Die Verifizierung wurde vor dem Settlement eindeutig abgelehnt; bei diesem Vorgang wurde keine Belastung ausgelöst.- Kein
charged: Das Ergebnis ist unbekannt oder hat bereits die Settlement-Phase erreicht; prüfen Sie zuerst Bestellung und On-Chain-Status, direkte erneute Zahlung ist verboten. settlement_pending: Zahlen Sie vorerst nicht erneut; aktualisieren Sie zuerst die Bestellung oder kontaktieren Sie den Support.- Nicht erkannter Code: Als
payment_failedbehandeln und den öffentlichen technischen Code für die Suche durch den Kundenservice aufbewahren.

