Library JavaScript
Panduan lengkap @transx402/client — instalasi, konfigurasi, komponen paywall, dan referensi API untuk integrasi pembayaran IDRX.
Ringkasan
@transx402/client adalah library untuk browser dan Node.js yang menangani seluruh alur pembayaran x402 untuk IDRX. Library ini membungkus client x402 standar dan menambahkan logika khusus IDRX: deteksi approval Permit2, prompt approval satu kali, dan konfigurasi default token/network.
Tujuan utama: tanpa kerumitan untuk pemilik website — cukup tambahkan satu script tag atau package npm, dan pembayaran IDRX langsung berfungsi.
Instalasi
NPM (untuk aplikasi yang di-bundle)
CDN (untuk WordPress, situs statis, halaman HTML biasa)
Untuk integrasi tanpa proses build, lihat panduan khusus Penggunaan CDN. Versi singkatnya:
Script CDN mengekspos objek global TransX402 dengan API yang sama seperti yang dijelaskan di bawah.
Inisialisasi
TransX402.create(options)
Buat instance client TransX402:
Environment (sandbox/production) ditentukan otomatis dari prefix API key — Anda tidak perlu mengatur URL fasilitator secara manual.
Opsi Konfigurasi
| Opsi | Tipe | Default | Deskripsi |
|---|---|---|---|
apiKey | string | wajib | API key dari dashboard TransX402 |
token | string | 'IDRX' | Simbol token yang digunakan |
network | string | 'base' | Jaringan blockchain |
onPaymentStart | function | — | Callback saat pembayaran dimulai |
onPaymentSuccess | function | — | Callback saat pembayaran berhasil |
onPaymentError | function | — | Callback saat pembayaran gagal |
onWalletConnect | function | — | Callback saat wallet terhubung |
onApprovalRequired | function | — | Callback saat approval Permit2 diperlukan |
API Utama
client.fetch(url, options)
Drop-in replacement untuk fetch(). Otomatis menangani respons 402.
Alur internal:
- Mengirim request
fetch()biasa - Jika respons 402, mem-parse persyaratan pembayaran
- Menghubungkan wallet (jika belum)
- Memeriksa approval Permit2 (meminta jika belum — satu kali saja)
- Menandatangani otorisasi Permit2
- Mengirim otorisasi ke fasilitator
- Mencoba ulang request asli dengan bukti pembayaran
- Mengembalikan respons final
client.connectWallet()
Hubungkan wallet secara eksplisit. Mendukung:
- MetaMask / wallet ekstensi browser (EIP-1193)
- WalletConnect v2
- Coinbase Wallet
client.checkApproval()
Periksa apakah wallet yang terhubung sudah menyetujui Permit2 untuk IDRX.
client.requestApproval()
Minta approval Permit2 dari pengguna. Hanya diperlukan sekali per wallet.
client.pay(paymentRequirements)
Trigger pembayaran secara manual tanpa membungkus fetch.
Komponen Paywall
Komponen paywall siap pakai untuk content gating.
Vanilla JavaScript
React
Tampilan Paywall
Overlay paywall default menampilkan:
- Harga dalam IDR (contoh: "Rp 5.000")
- Tombol "Pay with IDRX"
- Alur koneksi wallet (jika belum terhubung)
- Langkah approval Permit2 (jika pertama kali, dengan penjelasan)
- Konfirmasi pembayaran dengan link transaksi
- Dapat dikustomisasi melalui CSS variables
Kustomisasi
CSS Variables
Event Hooks
Dukungan Multi-Currency
Library dirancang untuk IDRX terlebih dahulu tetapi mendukung token tambahan:
Konfigurasi token (alamat, desimal, metode) diambil dari endpoint /tokens fasilitator, sehingga penambahan token baru tidak memerlukan update library client.
Target Ukuran Bundle
| Varian | Target |
|---|---|
| Core (fetch wrapper saja) | < 15 KB gzipped |
| Dengan paywall UI | < 30 KB gzipped |
| Dengan wallet connectors | < 50 KB gzipped |
| CDN full bundle | < 60 KB gzipped |
Kompatibilitas
Browser
- Chrome 90+
- Firefox 90+
- Safari 15+
- Edge 90+
- Mobile: Chrome Android, Safari iOS
Node.js
- Node.js 18+ (membutuhkan Fetch API)
- Bisa digunakan server-side untuk pembayaran programatik (AI agent, backend)