Sprawdź publiczny punkt wejścia
Deklaracja możliwości Facilitator:facilitator, supportedKinds i punkty końcowe protokołu, oznacza to, że metadane możliwości są prawidłowe. Wykrywanie zasobów API zostało wycofane; wywołuj bezpośrednio docelowe API i kieruj się odpowiedzią 402 w czasie rzeczywistym.
Obsługiwane możliwości Facilitator:
kinds, oznacza to, że punkt wejścia Facilitator działa prawidłowo.
Sprawdź 402 accepts
Wyślij nieuwierzytelnione żądanie, które nie spowoduje opłaty:
accepts zawiera sieć, której chcesz użyć. network jest identyfikatorem CAIP-2:
eip155:8453+exact(Base)eip155:8453+upto(Base, rozliczanie postpaid)eip155:1187947933+exact(SKALE)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp+exact(Solana)
Uruchom zaawansowane narzędzia weryfikacyjne X402Client
Repozytorium X402Client udostępnia zaawansowane narzędzia weryfikacyjne, które można wykorzystać do potwierdzenia wyboru odpowiedzi 402, generowania podpisów, paid retry i on-chain settlement. Wymagają one funded wallet, RPC, klucza prywatnego oraz zależności deweloperskich. W przypadku zwykłej integracji biznesowej zaleca się preferowanie SDK TypeScript lub Python; uruchamiaj te narzędzia tylko wtedy, gdy konieczne jest zlokalizowanie problemów z podpisem lub rozliczeniem on-chain. Adres repozytorium:https://github.com/AceDataCloud/X402Client- Odpowiedź 402 pierwszego żądania.
- Wybrane payment requirement.
- Skrót podpisanego
PAYMENT-SIGNATURE. - Status HTTP i treść odpowiedzi po ponowieniu próby.
- Transakcję on-chain settlement lub przyczynę błędu Facilitator w przypadku niepowodzenia.
PAYMENT-SIGNATURE do systemu logów ani w zgłoszeniach.
Przykład wyników weryfikacji publicznego API:
- SKALE
exact, Baseexact, Solanaexacti Baseuptowszystkie zakończyły paid retry z HTTP 402 do HTTP 200. - Transakcję on-chain dla SKALE
exactmożna sprawdzić w SKALE explorer, a kwota rozliczenia wynosi0.095215USDC. - Transakcję on-chain dla Base
exactmożna sprawdzić w BaseScan, a kwota rozliczenia wynosi95215atomic USDC. - Limit podpisu Base
uptowynosi95215atomic USDC, ale rzeczywisty on-chain settlement to3atomic USDC, co oznacza, że rozliczanie postpaid pobiera opłatę według rzeczywistego użycia. - Ścieżka Solana potwierdziła paid retry i wynik modelu. Publiczne RPC może podlegać ograniczeniu szybkości; gdy wymagane jest ścisłe uzgodnienie on-chain, użyj własnego Solana RPC lub potwierdź podpis transakcji na podstawie rekordów rozliczeniowych po stronie platformy.
SDK smoke test
Zaawansowane narzędzia weryfikacyjne służą do sprawdzania podpisów i rozliczeń on-chain. Strona biznesowa powinna również wykonać SDK smoke test, aby potwierdzić, że kod aplikacji potrafi automatycznie obsłużyć 402 przez payment handler. Poniżej pokazano tylko kluczowe fragmenty; pełny kod wymaga uzupełnienia wallet, provider i import. TypeScript:exact. SKALE obecnie udostępnia tylko exact, rozliczane według stałej kwoty wycenionej przez 402 i nieobniżane wraz z rzeczywistym zużyciem tokenów. Uzupełnianie czatu należy do scenariuszy rozliczanych według tokenów; przy wdrożeniu produkcyjnym zaleca się przejście na Base i przekazywanie preferScheme: 'upto', aby rozliczać się według rzeczywistego użycia.
Wyniki uruchomienia programu smoke test SDK:
- TypeScript SDK automatycznie obsługuje 402, podpisywanie i ponawianie przez
createX402PaymentHandler, ostatecznie uzyskującADC_TS_SDK_X402_OK. - Python SDK realizuje ten sam przepływ przez
create_x402_payment_handler, ostatecznie uzyskującADC_PY_SDK_X402_OK. - Oba smoke testy używają payera SKALE
0xd0479FA9FD8C678303d477433d24C15e3723CC1C. - Obiekt zwracany przez Python SDK jest typu
dict; w przykładzie można użyćres["choices"][0]["message"]["content"], aby odczytać treść.
E2E płatności za zamówienie
Płatności za zamówienia używają platformowego APIplatform.acedata.cloud i wymagają tokena konta platformy. Pełny przepływ jest następujący: utworzenie zamówienia Pending, wywołanie 402 przez POST /api/v1/orders/{order_id}/pay/, a następnie ponowienie z PAYMENT-SIGNATURE.
Przykład wyników weryfikacji płatności za zamówienie o małej wartości:
Poniższe rekordy transakcji są historycznymi próbkami rzeczywistych testów w ramach starej polityki; kwoty i hashe transakcji zachowano w oryginalnej postaci. Nowe zamówienia X402 nie mają już zniżek zależnych od metody płatności; jako podstawy podpisu i płatności należy używać amount z bieżącej odpowiedzi 402.
- Po utworzeniu zamówienia jego stan to
Pending, a cena to1.26. - Pierwsze żądanie
pay/zwraca HTTP 402; wacceptsznajdują się Baseexacti Solanaexact, a obie kwoty wynoszą1200000atomic USDC. - Po ponowieniu z Base
PAYMENT-SIGNATUREzwracany jest HTTP 200, stan zamówienia zmienia się naFinished, apay_waytoX402. - Po zdekodowaniu
PAYMENT-RESPONSEwyświetlane sąsuccess=True,network=baseoraz ten sam hash transakcji. - Na BaseScan stan transakcji to
1, a kwota transferu wynosi1200000atomic USDC, czyli1.2USDC. - Cena utworzenia
1.26została opłacona w okresie starej polityki rabatów płatności X402, a końcowa kwota podpisu i rozliczenia wynosi1.2USDC.
Authorization: Bearer {platform_token} lub zamówienie nie należy do bieżącego konta, zakończy się niepowodzeniem na warstwie uprawnień platformy; różni się to od bezkontowego API X402 wywoływanego bezpośrednio przez x402.acedata.cloud.
Częste błędy
Lista kontrolna Base upto
upto jest obecnie dostępne tylko na Base (eip155:8453). SKALE udostępnia tylko exact. Ponieważ podpis upto wiąże więcej parametrów EVM typed data, podczas integracji należy szczególnie potwierdzić, że pola czasu rzeczywistego w odpowiedzi 402 są w pełni zgodne z podpisem klienta.
upto zwraca invalid_upto_evm_payload_invalid_signature, w pierwszej kolejności sprawdź:
extra.chainId(powinno wynosić8453) w elemencieeip155:8453+uptozwróconym przez API.extra.facilitatorAddresszwrócone przez API.- Adres facilitatora Base
uptozwrócony przezhttps://facilitator.acedata.cloud/supported. - Permit2 domain, spender, kontrakt USDC i konto podpisujące.
- Czy portfel wykonał już approve Permit2 dla Base USDC.
upto jednocześnie wiąże Permit2 domain, chain ID, spender, adres odbiorcy, adres facilitatora i validAfter. Jeśli dowolna pozycja jest niezgodna, Facilitator odzyska nieprawidłowego signera, a następnie zwróci invalid signature. Jeśli wszystkie są zgodne, ale nadal zwracane jest 402, w kolejnym kroku sprawdź Permit2 allowance; przy braku autoryzacji zwracane jest PERMIT2_ALLOWANCE_REQUIRED.
Zapisywanie informacji weryfikacyjnych
Co najmniej w ramach jednej pełnej weryfikacji zapisz:- ścieżkę API i podsumowanie treści żądania;
- wybrane
networkischeme; maxAmountRequired;- adres portfela płatnika;
- końcowy status HTTP;
- wynik modelu lub identyfikator zadania w odpowiedzi;
- link do transakcji rozliczeniowej;
- identyfikator śledzenia Gateway lub identyfikator rekordu użycia platformy.
PAYMENT-SIGNATURE, pełnego podpisu EIP-712 ani frazy seed.
Ustrukturyzowane błędy płatności
Błędy X402 po podpisaniu zwracają wextensions.acedatacloud.paymentError stabilny code, bezpieczne parametry interpolacji, etap i flagę ponawiania. Przy rozwiązywaniu problemów preferuj tę strukturę, nie analizuj angielskiego error najwyższego poziomu i nie wymagaj od użytkowników podawania podpisu portfela ani oryginalnego tekstu symulacji on-chain.
charged: false: weryfikacja została wyraźnie odrzucona przed rozliczeniem, w tym przypadku nie zainicjowano obciążenia.- Brak
charged: wynik jest nieznany lub proces wszedł już w etap rozliczenia; najpierw sprawdź zamówienie i status on-chain, bezpośrednie ponawianie płatności jest zabronione. settlement_pending: na razie nie ponawiaj płatności; najpierw odśwież zamówienie lub skontaktuj się ze wsparciem.- Nierozpoznany
code: traktuj jakopayment_failedi zachowaj publiczny kod techniczny na potrzeby wyszukiwania przez obsługę klienta.

