FAQ
Sesuai apa pun yang disepakati partner Anda (PJP di sisi lain) saat
registrasi — package ini tidak memilihkan untuk Anda. Set
Tidak. Cek dulu halaman referensi endpoint tersebut — sebagian besar endpoint
tulis tidak idempotent (retry bukan sekadar “coba lagi dengan
aman,” bisa memicu transaksi dua kali). Server mendeteksi duplikat
lewat Standar SNAP mendokumentasikan bentuk field itu secara ambigu
(misalnya ditampilkan sebagai angka JSON polos di satu contoh dan
string berkutip di contoh lain). Mendekodenya sebagai tipe Go tertentu
akan menolak respons yang sah di salah satu bentuk itu; Optional dan Conditional sama-sama dikompilasi jadi Verifikasi dulu dengan Tidak. Go 1.21 atau lebih baru, sesuai
Tidak — semuanya standard library Go (Mode signing mana yang harus saya pakai — Symmetric atau Asymmetric?
HeaderBuilder.Symmetric sesuai: true dengan ClientSecret untuk
HMAC-SHA512, atau false dengan Signer untuk SHA256withRSA. Lihat
Signing.Apakah saya butuh database untuk memakai TokenManager?
TokenManager.AccessTokenB2B meng-cache token di memori selama
umur nilai *TokenManager itu — tidak ada penyimpanan eksternal. Bila
Anda menjalankan beberapa proses/instance, masing-masing punya cache-nya
sendiri dan mengambil token-nya sendiri secara independen. Lihat
Authentication.Apakah aman untuk retry sebuah panggilan yang gagal?
X-EXTERNAL-ID, jadi retry yang genuine harus memakai ulang
X-EXTERNAL-ID yang sama, jangan yang baru. Lihat
Errors.Sebuah field yang saya butuhkan bertipe json.RawMessage, bukan string — kenapa?
json.RawMessage
menerima keduanya tanpa kehilangan data. Lihat
Core Conventions.Kenapa tabel request sebuah endpoint menampilkan semua field sebagai Optional padahal paragrafnya bilang ada yang Conditional?
omitempty di Go —
tidak ada bedanya di level wire, jadi tabel tidak bisa membedakannya.
Baca paragraf di atas tabel (diambil dari doc comment sumbernya
sendiri) untuk tahu field Optional mana yang sebenarnya Conditional.
Lihat Core Conventions.Bagaimana cara menangani notifikasi/callback pembayaran?
snap.ServerVerifier — jangan pernah
meng-unmarshal body masuk sebelum mengecek signature-nya. Setiap
bagian “Inbound only” di halaman referensi menyebutkan tipe
...NotificationRequest yang tepat untuk didekode dan bentuk
...NotificationResponse untuk membalasnya. Lihat
Verifying inbound requests.Apakah package ini melakukan retry atau rate-limit request untuk saya?
snap.Transport.Do mengirim tepat satu request lalu selesai —
tidak ada retry, backoff, atau rate-limiting. Bangun sendiri di kode
pemanggil Anda bila dibutuhkan, memakai catatan idempotency setiap
endpoint untuk menentukan apa yang aman di-retry. Lihat
Transport.Versi Go berapa yang saya butuhkan?
go.mod.Apakah package ini punya dependensi pihak ketiga?
net/http, crypto/rsa,
crypto/hmac, encoding/json, dan sejenisnya).