/verify i /settle w Facilitatorze.
Produkcji adres Facilitatora Ace Data Cloud to:
v2 wire umowa
Łańcuch X402 Ace Data Cloud w pełni korzysta z oficjalnej wersji x402 v2 i nie akceptuje już nagłówkaX-Payment v1. Przy integracji należy zwrócić uwagę na trzy punkty:
- Nagłówek to
PAYMENT-SIGNATURE, a jego wartość to zakodowany w base64 JSON envelope. - Najwyższy poziom envelope musi mieć
x402Version: 2i używać obiektuaccepteddo zadeklarowania wybranegoschemeinetwork. networkużywa identyfikatora CAIP-2 (np.eip155:8453), nie można używać skrótów takich jakbase.
PAYMENT-REQUIRED, którego wartość to zakodowana w base64 ta sama treść wyzwania, co ułatwia klientowi odczytanie wymagań płatności bez analizy ciała.
Kluczowe interfejsy
GET /supported
Sprawdź obsługiwane sieci i schematy:
networkużywa identyfikatora CAIP-2, a nie skrótów takich jakbase,skale./supportedoznacza, że Facilitator ma odpowiednie możliwości weryfikacji i rozliczeń.- Base, SKALE i Solana obsługują
exact;uptojest obecnie dostępne tylko na Base. signersto adresy, które Facilitator używa do składania transakcji rozliczeniowych.- To, czy dany konkretny API zezwala na te opcje, zależy od
acceptstego API w odpowiedzi 402.
POST /verify
Weryfikuje, czy PAYMENT-SIGNATURE przesłany przez klienta spełnia określone wymagania płatności.
Ciało żądania:
paymentRequirements wersji v2 znajdują się scheme, network, asset, amount, payTo, maxTimeoutSeconds i extra, a pole kwoty to amount. Odpowiedź API 402 w accepts[] dodatkowo zwróci maxAmountRequired, aby klient mógł odczytać górny limit, ale nie należy to do pól żądania Facilitatora.
Odpowiedź sukcesu:
PAYMENT-RESPONSE dla płatności zamówienia produkcyjnego po dekodowaniu zawiera wyniki rozliczenia. Wynik działania programu płatności zamówienia Base:
success=Trueoznacza, że rozliczenie Facilitatora zakończyło się sukcesem.transactionto hash transakcji na łańcuchu, apay_idzamówienia również zapisuje tę samą wartość.- Na explorerze można zobaczyć transfer
1200000atomic USDC w Base USDC. errorReason=Noneoznacza, że to rozliczenie nie zwróciło błędów biznesowych.
isValid jest false. Strona biznesowa powinna odczytać invalidReason, a nie tylko patrzeć na kod stanu HTTP.
POST /settle
Przenosi już zweryfikowane uprawnienia do rozliczenia na łańcuch.
Ciało żądania jest zasadniczo zgodne z /verify. Różnica w przypadku upto polega na tym, że paymentRequirements.amount w czasie rozliczenia jest zmieniane na rzeczywistą kwotę rozliczenia; limit podpisu jest rejestrowany przez Facilitatora na etapie weryfikacji, a podczas rozliczenia sprawdzane jest, czy rzeczywista kwota nie przekracza tego limitu.
Odpowiedź sukcesu:
upto wynosi 0, transaction może być pustym ciągiem, co oznacza, że nie ma potrzeby wysyłania transakcji na łańcuch.
Jak Ace Data Cloud Gateway korzysta z Facilitatora
Łańcuch API Ace Data Cloud Gateway wygląda następująco:- Klient po raz pierwszy żąda API, nie podając
AuthorizationiPAYMENT-SIGNATURE. - Gateway oblicza szacunkową cenę żądania, zwracając 402 i
accepts. - Klient po podpisaniu ponownie próbuje z
PAYMENT-SIGNATURE. - Gateway dekoduje
PAYMENT-SIGNATURE, wybiera pasujące wymagania płatności. - Gateway wywołuje
/verifyw Facilitatorze. - Po pomyślnym zakończeniu
/verify, Gateway przekazuje żądanie do docelowego API. - Po zwróceniu przez docelowe API, Gateway w etapie
/recordwywołuje/settlew Facilitatorze. - Gateway zapisuje hash transakcji na łańcuchu w metadanych użycia.
exactw kroku 7 rozlicza kwotę podpisu;uptow kroku 7 zapisujeamountna podstawie rzeczywistego zużycia, a następnie rozlicza rzeczywistą kwotę.
Jak zintegrować własne API
Jeśli chcesz, aby twoje API wspierało X402, możesz zaimplementować to w tej strukturze:- Przygotuj
paymentRequirementsdla każdego płatnego interfejsu, zawierające sieć, kwotę, adres odbiorcy, adres aktywów i domenę podpisu. - Jeśli żądanie nie zawiera
PAYMENT-SIGNATURE, zwróć HTTP 402 iaccepts. - Jeśli żądanie zawiera
PAYMENT-SIGNATURE, zdekoduj Base64, aby uzyskaćpaymentPayload. - Wywołaj Facilitator
/verify. - Po pomyślnej weryfikacji wykonaj logikę biznesową.
- Po pomyślnym zakończeniu biznesu wywołaj Facilitator
/settle. - Zapisz
payer,transaction,amount,networkw celu rozliczenia.
paymentRequirements do wywołania /verify i /settle, nie ufaj kwocie, adresowi odbiorcy ani adresowi aktywów przesyłanym przez klienta.
Ochrona przed powtórkami
Facilitator będzie rejestrować nonce. Ta sama autoryzacja z tym samym nonce nie może być ponownie weryfikowana ani rozliczana. To oznacza:- Klient powinien za każdym razem podpisywać nową kopertę;
- Jeśli
/settlezłożyło transakcję, ale tymczasowo nie zostało potwierdzone, można ponownie spróbować/settlez tym samym nonce, aby wykonać idempotentne rozliczenie; - Nie przechowuj tego samego
PAYMENT-SIGNATUREw pamięci podręcznej do wielokrotnego wywołania API.

