Products
Fitur Products memungkinkan Anda mengelola beberapa produk dalam satu akun NxGate. Setiap lisensi dapat di-assign ke satu atau lebih produk, dan setiap product assignment dapat memiliki tanggal kadaluarsa tersendiri.
Konsep
Produk diidentifikasi dengan slug unik (huruf kecil, angka, dash). Slug tidak bisa diubah setelah dibuat karena akan break client yang sudah menggunakannya.
Sebuah lisensi bisa di-assign ke banyak produk. Saat verifikasi, Anda kirim productSlug dan server akan mengecek apakah lisensi tersebut memiliki akses ke produk tersebut.
Setiap product assignment dapat memiliki tanggal expiry sendiri, terpisah dari expiry lisensi utama. Jika product-level expiry habis, result akan PRODUCT_MISMATCH.
API Produk
/admin/productsBuat produk baru. Slug harus unik per akun dan tidak dapat diubah.
1# Buat produk baru2# slug harus: huruf kecil, angka, dash. Contoh: "mc-premium", "plugin-v2"3POST /admin/products4Authorization: Bearer YOUR_API_KEY56{7 "slug": "mc-premium",8 "name": "Minecraft Plugin Premium"9}1011# Response12{13 "id": 1,14 "slug": "mc-premium",15 "name": "Minecraft Plugin Premium",16 "createdAt": "2024-06-24T00:00:00.000Z"17}
/admin/productsList semua produk milik akun.
1GET /admin/products2Authorization: Bearer YOUR_API_KEY34# Response5[6 {7 "id": 1,8 "slug": "mc-premium",9 "name": "Minecraft Plugin Premium",10 "createdAt": "2024-06-24T00:00:00.000Z"11 }12]
Assign / Unassign Produk ke Lisensi
1# Assign produk ke lisensi2POST /admin/licenses/{licenseId}/products3Authorization: Bearer YOUR_API_KEY45{6 "productId": 17}89# Unassign produk dari lisensi10DELETE /admin/licenses/{licenseId}/products/{productId}11Authorization: Bearer YOUR_API_KEY
Atur Expiry per Produk
1# Atur expiry per-produk pada lisensi2PATCH /admin/licenses/{licenseId}/products/{productId}/expiry3Authorization: Bearer YOUR_API_KEY45{6 "expiresAt": "2025-12-31T00:00:00.000Z"7}89# Hapus expiry (set null)10{11 "expiresAt": null12}
Verifikasi dengan Product Check
1# Verifikasi lisensi dengan product check2GET /license/{userId}/{licenseKey}/verify?productSlug=mc-premium34# Jika lisensi tidak di-assign ke produk ini, atau product-level expiry habis:5{6 "valid": false,7 "result": "PRODUCT_MISMATCH"8}910# Jika valid:11{12 "valid": true,13 "result": "VALID"14}
Jika lisensi tidak memiliki product assignment sama sekali (belum di-assign ke produk apapun), maka productSlug di request tidak akan dicek. Product check hanya aktif jika lisensi memiliki minimal satu product assignment.
Slug tidak dapat diubah
Setelah slug produk dibuat dan sudah digunakan oleh client (di parameter productSlug saat verifikasi), slug tidak boleh diubah. Ini adalah breaking change. Hanya nama produk (name) yang bisa diupdate.