Skip to main content
Oprócz bezpośredniego opłacania żądań API, Ace Data Cloud obsługuje również opłacanie zamówień za pomocą konsoli płatności X402. Płatności za zamówienia i wywołania API korzystają z tego samego podstawowego protokołu: pierwsze żądanie zwraca 402, klient podpisuje 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, a amount 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 formacie platform-v1-.... W kolejnych żądaniach użyj:
Token konta różni się od zwykłego API Token. Zwykły API Token służy do wykorzystywania limitu API; token konta służy do reprezentowania Twojego konta podczas operowania zasobami platformy, takimi jak płatności za zamówienia.

Wyzwalanie 402

Najpierw wyślij żądanie bez PAYMENT-SIGNATURE:
Zwrócony status to 402, a odpowiedź zawiera accepts:
Płatności za zamówienia korzystają z oficjalnego x402 v2: 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.
Wyjaśnienie wyników:
  • Po pomyślnym utworzeniu zamówienia jego stan to Pending, a płatność on-chain nie została jeszcze wykonana.
  • Pierwsze żądanie pay/ nie zawiera PAYMENT-SIGNATURE, dlatego zwraca HTTP 402.
  • accepts podaje jednocześnie Base exact i Solana exact; 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ła 1.2 USDC, co odpowiada 1200000 atomic USDC.
Należy pamiętać, że 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:
Wynik działania programu po podpisaniu i ponowieniu tego samego zamówienia przy użyciu Base exact:
Wynik potwierdzenia on-chain:
Opis wyniku:
  • status 200 oznacza, że interfejs płatności zamówienia platformy zaakceptował ten PAYMENT-SIGNATURE.
  • has_x_payment_response True oznacza, że nagłówek odpowiedzi zawiera pokwitowanie PAYMENT-RESPONSE zakodowane w Base64.
  • settle_header.success=True oraz network=base oznaczają, że Facilitator zakończył settlement Base.
  • Końcowy status zamówienia to Finished, pay_way to X402, a pay_id zawiera hash transakcji on-chain.
  • Zdarzenie Transfer na BaseScan pokazuje, że adres płatnika przelał na adres odbiorcy platformy 1200000 atomic USDC, czyli 1.2 USDC.

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 odpowiedzi PAYMENT-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.
  • amount używa atomic units USDC, 1200000 oznacza 1.2 USDC.
  • Nie składaj samodzielnie adresu odbiorcy ani adresu aktywa; opieraj się na accepts w odpowiedzi 402.
  • Jeśli ten sam PAYMENT-SIGNATURE zostanie przesłany wielokrotnie, Facilitator zastosuje ochronę przed ponownym odtworzeniem na podstawie nonce.

Odpowiedź w przypadku niepowodzenia płatności

Pierwsze HTTP 402 bez PAYMENT-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:
Klient powinien w pierwszej kolejności lokalizować według 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.