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.