Skip to main content
X402 umfasst HTTP, SDK, Signaturen, Facilitator und On-Chain-Transaktionen. Bei der Untersuchung von Signatur- oder Abrechnungsproblemen wird empfohlen, Schicht für Schicht in der Reihenfolge „öffentlicher Einstiegspunkt -> 402-Antwort -> SDK payment handler -> On-Chain-settlement“ zu prüfen. Dieses Tutorial beschreibt die Prüfmethoden für jede Schicht und listet häufige Fehler auf.

Öffentlichen Einstiegspunkt prüfen

Facilitator-Fähigkeitserklärung:
Wenn 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:
Wenn kinds zurückgegeben wird, ist der Facilitator-Einstiegspunkt normal.

402 accepts prüfen

Senden Sie eine nicht kostenpflichtige Anfrage ohne Authentifizierung:
Prüfen Sie, ob 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)
Wenn das Zielnetzwerk nicht vorhanden ist, ist für diese API oder die aktuelle Umgebung keine entsprechende X402-Zahlungsmethode konfiguriert.

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
Base:
SKALE:
Solana:
Die Validierungstools geben normalerweise Folgendes aus:
  1. Die 402-Antwort der ersten Anfrage.
  2. Die ausgewählte payment requirement.
  3. Die Zusammenfassung der signierten PAYMENT-SIGNATURE.
  4. Den HTTP-Status und Antworttext nach dem Wiederholungsversuch.
  5. Die On-Chain-settlement-Transaktion oder bei einem Fehler den vom Facilitator angegebenen Fehlergrund.
Senden Sie keine privaten Schlüssel oder vollständigen PAYMENT-SIGNATURE-Werte an Log-Systeme oder Tickets. Beispiel für Ergebnisse der öffentlichen API-Validierung:
Erläuterung:
  • SKALE exact, Base exact, Solana exact und Base upto haben alle den paid retry von HTTP 402 zu HTTP 200 abgeschlossen.
  • Die On-Chain-Transaktion von SKALE exact ist im SKALE explorer auffindbar, und der Abrechnungsbetrag beträgt 0.095215 USDC.
  • Die On-Chain-Transaktion von Base exact ist in BaseScan auffindbar, und der Abrechnungsbetrag beträgt 95215 atomic USDC.
  • Das Signaturlimit von Base upto beträgt 95215 atomic USDC, aber das tatsächliche On-Chain-settlement beträgt 3 atomic 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:
Python:
Wenn das Modell wie gefordert die feste Zeichenfolge zurückgibt, sind SDK, payment handler, Gateway, Facilitator und Ziel-API miteinander verbunden. Die beiden oben genannten Smoke-Tests verwenden SKALE 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:
Ergebnisbeschreibung:
  • Das TypeScript SDK verarbeitet 402, Signatur und Wiederholung automatisch über createX402PaymentHandler und erhält schließlich ADC_TS_SDK_X402_OK.
  • Das Python SDK führt über create_x402_payment_handler denselben Ablauf aus und erhält schließlich ADC_PY_SDK_X402_OK.
  • Beide Smoke-Tests verwenden den SKALE-Payer 0xd0479FA9FD8C678303d477433d24C15e3723CC1C.
  • Das vom Python SDK zurückgegebene Objekt ist ein dict; im Beispiel kann res["choices"][0]["message"]["content"] verwendet werden, um den Inhalt auszulesen.

E2E der Bestellzahlung

Die Bestellzahlung verwendet die Plattform-API von platform.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.
Ergebnisbeschreibung:
  • Nach der Erstellung der Bestellung ist der Bestellstatus Pending und der Preis beträgt 1.26.
  • Die erste pay/-Anfrage gibt HTTP 402 zurück; accepts enthält Base exact und Solana exact, beide mit einem Betrag von 1200000 atomic USDC.
  • Nach der Wiederholung mit Base PAYMENT-SIGNATURE wird HTTP 200 zurückgegeben, der Bestellstatus ändert sich zu Finished und pay_way ist X402.
  • Nach der Dekodierung von PAYMENT-RESPONSE werden success=True, network=base sowie derselbe Transaktions-Hash angezeigt.
  • Auf BaseScan ist der Transaktionsstatus 1, und der Überweisungsbetrag beträgt 1200000 atomic USDC, also 1.2 USDC.
  • Der Erstellungspreis von 1.26 wurde während der alten X402-Zahlungsrabattrichtlinie bezahlt; der endgültige Signatur- und Abrechnungsbetrag beträgt 1.2 USDC.
Wenn die Bestellzahlung kein 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.
Wenn Base upto invalid_upto_evm_payload_invalid_signature zurückgibt, prüfen Sie vorrangig:
  1. extra.chainId im von der API zurückgegebenen Eintrag eip155:8453 + upto (sollte 8453 sein).
  2. Die von der API zurückgegebene extra.facilitatorAddress.
  3. Die von https://facilitator.acedata.cloud/supported zurückgegebene Base-upto-Facilitator-Adresse.
  4. Permit2-Domain, Spender, USDC-Vertrag und Signaturkonto.
  5. Ob die Wallet Base USDC bereits für Permit2 genehmigt hat.
Der Signatur-Digest von 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.
Keine privaten Schlüssel, vollständigen PAYMENT-SIGNATURE, vollständige EIP-712-Signatur oder Seed-Phrase speichern.

Strukturierte Zahlungsfehler

Fehler bei signiertem X402 geben unter extensions.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_failed behandeln und den öffentlichen technischen Code für die Suche durch den Kundenservice aufbewahren.