Server Library
@transx402/server — SDK backend merchant untuk settlement x402 kanonis (respons 402, processGate, proxy config).
Overview
@transx402/server adalah paket Node tanpa runtime dependency untuk backend merchant. Gunakan bersama @transx402/client dalam mode settlement: "server" (default untuk fetch()).
Alur kanonis:
- Client memanggil API Anda → kembalikan 402 dari
payments.processGate/payments.buildRequired - Wallet client menandatangani → retry dengan
PAYMENT-SIGNATURE - Route Handler Anda memanggil
tx402.payments.processGate→POST /facilitatedenganX-API-Keydi server - Jika sukses, kembalikan konten berbayar
TransX402 memakai POST /facilitate gabungan (verify + settle dalam satu panggilan). Simpan key ipk_sandbox_ / ipk_live_ di server.
Untuk paywall / situs statis tanpa endpoint settle merchant, gunakan settlement: "direct" di client.
Membutuhkan Node.js 20.19+. Tidak ada paket middleware Express / Hono / Fastify — teruskan Request / Headers Web Standard (atau header Node http) sendiri. Next.js App Router adalah contoh utama.
Install
Sumber: github.com/campinvestment/transx402-server
Anda wajib mengirim environment dan/atau facilitatorUrl ke konstruktor. Keluarga key harus cocok (ipk_sandbox_ ≠ environment: "base").
Quick start (Route Handler)
priceIdr adalah IDR utuh (dikonversi ×100 ke unit dasar IDRX). payTo harus cocok dengan wallet merchant di dashboard.
Browser / agen:
Proxy config (settlement server)
Browser memuat parameter chain via GET /config. Tanpa allowlist CORS domain merchant di fasilitator hosted, panggilan lintas origin gagal. Sediakan proxy same-origin dan arahkan client browser ke sana.
Basis path proxy default: /api/transx402 (client menambahkan /config).
Route Handler pembayaran tetap berbicara ke fasilitator langsung untuk body 402 dan POST /facilitate. Hanya browser yang memakai proxy.
API
Client
| Anggota | Tujuan |
|---|---|
new TransX402(apiKey, options) | Konfigurasi sekali (environment dan/atau facilitatorUrl) |
tx402.payments.processGate | Tanpa header → 402; dengan header → facilitate |
tx402.payments.facilitate | Decode header → POST /facilitate (melempar FacilitationError) |
tx402.payments.verify | Lookup pasca-settlement GET /payments/:txHash |
tx402.payments.buildRequired | Body 402 x402 v2 dari /config fasilitator |
tx402.config.handleRequest | Handler Web Standard untuk route proxy config |
tx402.config.fetch | GET /config upstream |
Hasil processGate:
Helper bebas
| Export | Tujuan |
|---|---|
hasPaymentHeader / getPaymentHeader | Baca PAYMENT-SIGNATURE / X-PAYMENT |
decodePaymentSignature | Decode JSON base64 payload pembayaran |
toIdrxBaseUnits | IDR utuh → unit dasar IDRX (×100) |
detectApiKeyFamily | ipk_sandbox_ / ipk_live_ → section |
browserFacilitatorProxyBase / DEFAULT_FACILITATOR_CONFIG_PROXY_BASE | Basis path same-origin ("/api/transx402") |
FACILITATOR_PRESETS | Host fasilitator bernama |
FacilitationError | Kelas error dari kegagalan facilitate |
Utamakan PAYMENT-SIGNATURE; X-PAYMENT adalah cadangan.
Migrasi dari 0.2.x
Berikut bukan export publik lagi: resolveServerConfig, processPaymentGate, facilitatePayment, verifyPayment, buildPaymentRequired, fetchFacilitatorConfig, handleFacilitatorConfigRequest.
Related
- Library JavaScript —
@transx402/client - Referensi API —
GET /config,POST /facilitate,GET /payments/:txHash - Quickstart — resep Next.js siap salin