Lewati ke konten
Kembali ke dokumentasi Launch

Unduh MarkdownDokumen asli di GitHub

Integrasi akun dan pembelian Licentivo

Panduan ini menjelaskan penyedia Licentivo saat ini. Pedagang yang menggunakan sistem lisensi lain dapat memilih penyedia HTTP kustom; mode tersebut tidak memanggil Licentivo atau memerlukan kunci API-nya.

Konfigurasi administrator

  1. Buat produk dan kebijakan di Licentivo.
  2. Konfigurasikan kunci manajemen baca/tulis di System settings → Licentivo Launch. Origin Licentivo ditetapkan ke https://www.licentivo.com.
  3. Pilih kebijakan untuk setiap versi paket penjualan Launch. Launch membaca produk, versi kebijakan, dan pengaturan tampilan runtime.
  4. Launch mendaftarkan koneksi kepercayaan akun sandbox/live terpisah di bawah satu koneksi manajemen Licentivo, termasuk kunci publik penandatanganan identitas dan origin pedagang.

Kunci manajemen tetap terenkripsi pada server pedagang. File instalasi klien hanya berisi informasi rute publik dan kunci produk publik yang dipatok.

Urutan API sisi server

Semua path berikut berada di Licentivo dan dipanggil Launch dengan kredensial manajemennya:

Endpoint Tujuan
GET /api/v1/products Penemuan produk
GET /api/v1/policies, GET /api/v1/policies/{id} Penemuan kebijakan dan pemeriksaan versi
GET /api/v1/launch/connections Temukan koneksi kepercayaan origin/lingkungan
POST /api/v1/launch/connections, PUT /api/v1/launch/connections/{id} Daftarkan/perbarui kunci identitas publik dan perutean
PUT /api/v1/launch/connections/{id}/plans/{plan} Daftarkan versi paket penjualan yang tidak dapat diubah dan pemetaan kebijakan Licentivo
POST /api/v1/launch/connections/{id}/events Kirim snapshot pembelian absolut berversi
GET /api/v1/launch/connections/{id}/events/{event} Pulihkan/periksa hasil asli
POST /api/v1/launch/connections/{id}/events/{event}/retry Coba ulang peristiwa yang sama setelah peninjauan
POST /api/v1/launch/connections/{id}/session-revocations Beri tahu pencabutan akun/sesi
GET /api/v1/launch/connections/{id}/session-revocations/{event} Verifikasi tanda terima pencabutan

Launch mencatat pembayaran terverifikasi, cakupan berbayar yang tidak dapat diubah, dan tugas keluar dalam satu transaksi lokal. Worker mengirim tanggal pembelian absolut lengkap dan ID peristiwa stabil. Hanya tanda terima applied yang mengonfirmasi sinkronisasi; penerimaan HTTP saja tidak.

Pengembalian dana dan pembalikan yang dikonfirmasi menghapus cakupan pesanan terkait. Snapshot lengkap berikutnya dapat mempertahankan pembelian dasar aktif, mempersingkat masanya, memulihkan paket lebih rendah, atau menghentikan seluruh cakupan. Percobaan ulang tidak pernah menambahkan sejumlah hari lagi. Pengikatan lisensi lama yang diterbitkan menggunakan peristiwa migrasi eksplisit, bukan replay otomatis perintah manajemen lama.

Alur aplikasi pelanggan

  1. Aplikasi masuk ke Launch menggunakan sesi akun desktop.
  2. POST /api/v1/software/products/{id}/identity di Launch mengembalikan assertion identitas yang berlaku maksimal 120 detik, terikat pada sesi nyata, produk, lingkungan, issuer, dan audience.
  3. Paket Launch meneruskannya dalam memori ke SDK resmi, yang menukarkannya dengan Licentivo di POST /api/v1/launch/exchange.
  4. Licentivo menerbitkan kredensial perangkat dan izin bertanda tangan. SDK memeriksa setiap tindakan yang dilindungi, kebijakan perangkat, status runtime, dan aturan offline.

Login Launch, pesanan berbayar, atau pembelian tersinkronisasi bukan izin runtime. Endpoint /credential lama mengembalikan HTTP 410. Penyampaian penyedia kustom adalah API terpisah bercakupan pemilik dan tidak memulihkan endpoint tersebut.

Daftar perangkat, kuota pelepasan, generasi pengikatan, dan pemulihan logout tetap menjadi tanggung jawab Licentivo. Pencabutan sesi/akun menggunakan pemberitahuan persisten dengan tanda terima per lingkungan; pencabutan offline tetap dibatasi oleh grant SDK yang sudah diterbitkan.

Lihat integrasi aplikasi, batas pembelian/akun, integrasi manual, dan penerimaan. Implementasi berada di internal/adapters/licentivo/launch_bridge.go, internal/app/launch_trust.go, internal/app/purchase_sync.go, dan internal/app/identity.go.