Gejala Masalah #
Pelanggan telah berhasil menyelesaikan pembayaran di halaman Duitku, namun status pesanan di menu Folkthemes -> Pesanan tetap tertahan di status Memproses Pembayaran (processing_payment) dan akun pelanggan tidak otomatis diprovisi.
Kemungkinan Penyebab #
- Environment Localhost: Server Duitku tidak dapat mengakses domain
localhostatau alamat IP privat. - URL Callback Belum Diatur di Duitku: Kolom Callback URL pada project Duitku Merchant belum diisi atau salah ketik.
- Kunci Merchant Mismatch: Merchant Key di Folkthemes berbeda dengan Project Key di Duitku sehingga kalkulasi signature MD5 ditolak server.
- Blokir Firewall / Plugin Keamanan: Wordfence, Cloudflare WAF, atau
.htaccessmemblokir permintaan POST dari IP server Duitku ke rute REST API/wp-json/folkthemes/v1/payment/callback/duitku.
Cara Pengecekan #
- Buka dashboard Duitku -> menu Project -> periksa log transaksi (apakah status callback tertulis gagal / timeout).
- Buka detail pesanan di Folkthemes admin, periksa bagian Timeline Audit apakah ada event
callback_receivedatausignature_failed. - Uji akses URL callback melalui browser:
https://domainanda.com/wp-json/folkthemes/v1/payment/callback/duitku(harus mengembalikan respons JSON penolakan otorisasi, bukan halaman error 404 atau 403 firewall hosting).
Solusi #
- Pastikan website menggunakan domain publik dengan sertifikat SSL (HTTPS) aktif.
- Masukkan URL callback resmi sama persis:
https://domainanda.com/wp-json/folkthemes/v1/payment/callback/duitkuke dashboard Duitku. - Jika menggunakan Cloudflare, buat WAF bypass rule untuk path
/wp-json/folkthemes/v1/payment/callback/*. - Perbarui Merchant Key di tab Commerce dan simpan ulang.