Tinjau perubahan callback checkout ini sebelum saya merge.
Temuan: percobaan ulang webhook dapat membuat kredit ganda jika kunci idempotensi tidak diterapkan. Risiko: status penagihan dapat menyimpang dari dompet yang terlihat oleh pengguna. Celah pengujian: tambahkan kasus pemutaran ulang dan peristiwa yang datang tidak berurutan. Keputusan: blokir merge sampai perilaku persistensi dan percobaan ulang tercakup.
