Lewati ke konten utama
← Kembali ke dokumentasi

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/ dan modules/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:

  1. Status order berpindah pending → matched → credited di dashboard TriaPay Anda.
  2. Invoice DHRU ditandai lunas.
  3. 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