PAYMENT-SIGNATURE, a następnie ponawia to samo żądanie.
Różnica polega na tym, że płatność za zamówienie należy do platformowego API i wymaga tokenu konta; natomiast bezpośrednie wywołanie AI API x402.acedata.cloud może korzystać wyłącznie z X402, bez konieczności używania API Token.
Przygotowanie zamówienia
Wejdź do konsoli Ace Data Cloud, wybierz zamówienie wymagające płatności i zanotuj ID zamówienia. Jeśli nie masz jeszcze zamówienia, możesz utworzyć zamówienie oczekujące na płatność na stronie pakietów. Cena zamówienia jest zgodna z wyświetlaną na stronie, aamount w odpowiedzi X402 402 stanowi ostateczną podstawę podpisu.
Tworzenie tokenu konta
Żądania płatności za zamówienia wymagają tokenu konta. Otwórz stronę Platform Token i utwórz token w formacieplatform-v1-....
W kolejnych żądaniach użyj:
Wyzwalanie 402
Najpierw wyślij żądanie bezPAYMENT-SIGNATURE:
accepts:
x402Version wynosi 2, network używa identyfikatora CAIP-2, a pole kwoty to amount.
Wynik działania programu tworzącego zamówienie na 10 Credits i wyzwalającego 402:
Poniższe rekordy transakcji są historycznymi próbkami z 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 użyj amount z bieżącej odpowiedzi 402.
- Po pomyślnym utworzeniu zamówienia jego stan to
Pending, a płatność on-chain nie została jeszcze wykonana. - Pierwsze żądanie
pay/nie zawieraPAYMENT-SIGNATURE, dlatego zwraca HTTP 402. acceptspodaje jednocześnie Baseexacti Solanaexact; w dalszej części tego samouczka wybieramy Base.- Cena podczas tworzenia zamówienia wynosi
1.26; przy płatności w okresie starej polityki rabatów płatności X402 rzeczywista podpisana i rozliczona kwota wynosiła1.2USDC, co odpowiada1200000atomic USDC.
resource jest polem zwracanym przez serwer i uczestniczącym w podpisie; klient nie powinien samodzielnie zmieniać zawartego w nim protokołu, ścieżki ani ID zamówienia.
Podpisz i ponów
Płatność za zamówienie może ponownie wykorzystać@acedatacloud/x402-client lub niskopoziomowe funkcje podpisywania acedatacloud-x402. Poniżej znajduje się przykład TypeScript:
exact:
status 200oznacza, że interfejs płatności zamówienia platformy zaakceptował tenPAYMENT-SIGNATURE.has_x_payment_response Trueoznacza, że nagłówek odpowiedzi zawiera pokwitowaniePAYMENT-RESPONSEzakodowane w Base64.settle_header.success=Trueoraznetwork=baseoznaczają, że Facilitator zakończył settlement Base.- Końcowy status zamówienia to
Finished,pay_waytoX402, apay_idzawiera hash transakcji on-chain. - Zdarzenie
Transferna BaseScan pokazuje, że adres płatnika przelał na adres odbiorcy platformy1200000atomic USDC, czyli1.2USDC.
Pomyślna odpowiedź i pokwitowanie
Po pomyślnej płatności za zamówienie treść odpowiedzi zawiera informacje o zamówieniu. Platforma umieszcza również w nagłówku odpowiedziPAYMENT-RESPONSE odpowiedź settlement zakodowaną w Base64, której zdekodowane typowe pola obejmują:
Jeśli potrzebujesz uzgodnienia, zaleca się jednoczesne zapisanie ID zamówienia, adresu portfela płatnika,
transaction oraz końcowego statusu zamówienia.
Uwagi
- Płatność za zamówienie wymaga tokena konta platformy i nie może zostać ukończona wyłącznie za pomocą podpisu portfela X402.
amountużywa atomic units USDC,1200000oznacza1.2USDC.- Nie składaj samodzielnie adresu odbiorcy ani adresu aktywa; opieraj się na
acceptsw odpowiedzi 402. - Jeśli ten sam
PAYMENT-SIGNATUREzostanie przesłany wielokrotnie, Facilitator zastosuje ochronę przed ponownym odtworzeniem na podstawie nonce.
Odpowiedź w przypadku niepowodzenia płatności
Pierwsze HTTP 402 bezPAYMENT-SIGNATURE jest normalnym wyzwaniem płatności i nie oznacza niepowodzenia płatności. Niepowodzenie weryfikacji lub settlement po podpisaniu nadal zachowuje standardowy tekstowy error jako kompatybilne zabezpieczenie awaryjne, a stabilna struktura błędu jest zwracana w extensions.acedatacloud.paymentError:
code, a w przypadku nieznanego code przejść do ogólnego błędu płatności. charged jest polem trójstanowym: false zostanie zwrócone tylko wtedy, gdy płatność zostanie wyraźnie odrzucona przed settlement; brak pola oznacza, że status obciążenia jest nieznany i nie może być interpretowany jako „nie obciążono”. Po przejściu bieżącego zamówienia do Failed nie można ponowić próby dla tego samego zamówienia; po naprawieniu problemu z portfelem utwórz nowe zamówienie.
Nie zapisuj ani nie przesyłaj pełnego PAYMENT-SIGNATURE, podpisu portfela, payloadu autoryzacji, surowej diagnostyki Facilitatora ani odpowiedzi RPC. Do analizy przez obsługę klienta wystarczy ID zamówienia i publiczny code błędu.
