Skip to main content
MerchantId adalah registry dan composition root. Ia tidak menyamakan alur login provider yang memang berbeda: login, discovery merchant/store, transaksi, dan pembayaran tetap dipanggil pada adapter konkret. Yang ditangani registry adalah pendaftaran, pemilihan default, status ringkas, dan ekspor sesi.

Mendaftarkan provider

createMerchantId(config) adalah alias fungsi untuk new MerchantId(config).

Kontrak MerchantProvider

Registry hanya menyentuh permukaan kecil yang dimiliki setiap facade provider. Detail autentikasi sengaja tetap provider-specific.
GopayProvider dan ShopeeProvider memenuhi kontrak ini sekaligus mengekspos method login, discovery, dan payment masing-masing.

Registry API

Provider pertama yang didaftarkan otomatis menjadi default sampai setDefaultProvider dipanggil. Mendaftarkan id yang sama dua kali, atau memilih provider yang belum terdaftar, melempar ConfigError.

Ekspor sesi

exportSessions() mengembalikan Record<string, unknown> berisi sesi setiap provider yang sedang terautentikasi. Nilai per provider adalah tipe sesi native-nya (SessionState untuk GoPay, ShopeeSession untuk Shopee). Perlakukan seluruh objek ini sebagai kredensial: simpan di secret store, jangan tulis ke log atau kirim ke browser.

Batas desain

Registry sengaja tidak memaksakan login universal. Login, discovery merchant/store, transaksi, dan pembayaran tetap dipanggil pada adapter konkret agar detail provider tidak bocor ke core. core tidak mengetahui next_position Shopee, cookie, GoID grant, atau payload GoBiz. Lihat Referensi API MerchantId.

Langkah berikutnya

GoPay Merchant

Adapter GoPay lengkap.

Shopee Merchant

Adapter Shopee lengkap.