Instalasi
Pasang plugin TriaPay DHRU dan kirim pembayaran uji pertama dalam waktu di bawah sepuluh menit.
Instalasi
Panduan menyeluruh: daftarkan tenant, pasang plugin DHRU, kirim pembayaran uji.
Prasyarat
- Instalasi DHRU Fusion yang berjalan (versi PHP terbaru yang didukung DHRU).
- Akses SSH atau panel untuk menempatkan dua berkas PHP di
modules/gateways/danmodules/gateways/callback/. - URL HTTPS yang dapat diakses publik untuk instance DHRU Anda (TriaPay mengirim webhook bertanda tangan ke sana).
- Akun tenant TriaPay (daftar di sini).
1. Buat tenant Anda
Daftarkan di /register dengan nama pengguna, email, dan kata sandi minimal 12 karakter. Verifikasi email Anda melalui tautan yang kami kirim. Admin kemudian akan mengaktifkan tenant Anda, biasanya dalam satu hari kerja. Anda akan menerima email kedua saat aktivasi selesai.
2. Buat kredensial API
Masuk ke akun. Buka halaman Integration. Tab Webhook & API menyediakan tiga hal:
- Webhook URL — tempat TriaPay melakukan POST event kredit. Atur ke path callback DHRU Anda:
https://yourdhru.com/modules/gateways/callback/triapay.php. - API key — bearer token yang digunakan plugin DHRU Anda untuk membuat order. Klik Rotate untuk membuatnya. Hanya ditampilkan sekali, segera salin.
- Webhook secret — kunci HMAC-SHA256 yang digunakan plugin Anda untuk memverifikasi tanda tangan webhook. Klik Rotate untuk membuatnya. Hanya ditampilkan sekali.
3. Pasang plugin DHRU
Plugin dikirimkan sebagai dua berkas PHP, keduanya dapat diunduh dari tab Webhook & API:
| Unduhan | Tempatkan di |
|---|---|
triapay.php (gateway) |
<dhru-root>/modules/gateways/triapay.php |
triapay-callback.php (callback, ganti nama menjadi triapay.php) |
<dhru-root>/modules/gateways/callback/triapay.php |
Berkas callback diganti namanya saat instalasi karena DHRU mengharapkan berkas callback memiliki basename yang sama dengan gateway. Kami mengirim berkas unduhan dengan nama berbeda hanya untuk menjaga keduanya tetap terpisah di direktori /downloads/ TriaPay yang flat.
3a. Whitelist callback di `.htaccess`
Berkas modules/gateways/callback/.htaccess di DHRU secara default menolak semua akses dan hanya mengizinkan callback yang ada di whitelist FilesMatch. Tambahkan |^triapay\.php ke daftar tersebut supaya webhook TriaPay bisa mencapai callback:
<FilesMatch "^wombi\.php|^gourlio\.php|...|^tripay\.php|^triapay\.php">
Order Allow,Deny
Allow from all
</FilesMatch>
Tanpa langkah ini, DHRU Anda akan mengembalikan 403 Forbidden untuk setiap webhook dan order tidak akan transisi melewati status confirmed. Reload Apache tidak perlu — perubahan .htaccess berlaku pada request berikutnya.
3b. Konfigurasi gateway di DHRU
Setelah mengunggah, buka admin DHRU → Settings → Payment Gateways → TriaPay. Tempelkan nilai berikut:
- API URL:
https://triapay.net/api/v1 - API key: nilai
tpk_live_...yang Anda buat di langkah 2 - Webhook secret: nilai yang Anda buat di langkah 2
Simpan.
4. Konfigurasi metode penerimaan
Kembali ke dashboard TriaPay → Integration:
- Tab Crypto → untuk setiap chain yang ingin Anda terima, atur master address tempat pelanggan akan mengirim dana. TRC20 hanya USDT; BEP20 menerima USDT dan USDC. Opsional, atur jumlah minimum/maksimum dan biaya di bawah Advanced settings.
- Tab Binance Pay → atur Pay ID Binance Anda beserta API key + secret Binance dengan izin Read and Pay saja. USDT dan USDC sama-sama didukung di sini. Kredensial dienkripsi saat penyimpanan dengan AES-256-GCM.
5. Kirim pembayaran uji
Dari panel pelanggan DHRU, masuk sebagai pengguna uji. Buat deposit $1. Pilih USDT TRC20 (paling cepat terkonfirmasi saat pengujian). Kirim jumlah yang ditampilkan persis termasuk akhiran desimal di belakang (mis. 1.0123 USDT, desimal di belakang mengkodekan kode pencocokan order; lebarnya dapat dikonfigurasi per metode, 1 sampai 3 digit).
Deteksi berjalan pada irama yang ketat: listener TRC20 dan BEP20 memindai setiap 3 detik, Binance Pay setiap 5 detik. Kredit ujung-ke-ujung biasanya 3 sampai 7 detik untuk kripto dan 5 sampai 10 detik untuk Binance Pay, ditambah ekor konfirmasi chain.
Dalam hitungan detik Anda akan melihat:
- Status order berpindah
pending → matched → crediteddi dashboard TriaPay Anda. - Invoice DHRU ditandai lunas.
- Saldo pengguna diperbarui.
Jika ada yang macet, periksa Audit log di dashboard untuk alasan kegagalan.
Pemecahan masalah
| Gejala | Kemungkinan penyebab |
|---|---|
Order macet di confirmed, tidak pernah mencapai credited |
Pengiriman webhook gagal. Periksa audit log untuk respons HTTP dari DHRU Anda. Pastikan webhook URL dapat diakses publik, DHRU Anda tidak berada di balik basic-auth, dan webhook secret cocok di kedua sisi. |
| Pembayaran terlihat di chain tapi tidak ada order yang cocok | Pelanggan mengirim jumlah yang salah atau tidak menyertakan catatan Binance Pay. Buka Admin → Orphan transactions dan tautkan secara manual ke invoice yang benar. |
Plugin menerima 429 Rate limited |
Plugin terlalu agresif menghantam /api/v1/orders. Batas adalah 60 order per tenant per menit. Respons kini menyertakan header Retry-After (detik), lakukan backoff dan coba lagi. |
401 invalid api key |
Entah API key telah diputar dan plugin masih menyimpan nilai lama, atau prefiks key tidak cocok. Putar ulang dan tempel ulang. |
| Verifikasi tanda tangan webhook gagal di sisi DHRU | Body harus di-hash persis seperti yang diterima (bytes mentah, tanpa encoding ulang). Periksa X-Payment-Sig-Version: versi 2 menandatangani {timestamp}\n{idempotency}\n{body}, versi 1 menandatangani body saja. Plugin DHRU bawaan menangani keduanya selama jendela rollover 30 hari. Tolak jika |now − X-Payment-Timestamp| > 300. |
Langkah berikutnya
- API reference — kontrak REST untuk integrasi langsung
- Webhook spec — format payload lengkap dan verifikasi tanda tangan