Gambaran Umum Pembayaran & Gateway yang Didukung BDX
BDX.market adalah pasar eskro gaming dan barang digital utama Bangladesh. Untuk melindungi pembeli dan penjual dari penipuan, penipuan pemulihan akun, dan tidak adanya pengiriman, BDX mengoperasikan arsitektur eskro perlindungan pembeli yang ketat.
Di bawah arsitektur ini, saat pembeli membayar penawaran atau top-up, dana tidak dikirim langsung ke akun pribadi penjual. Sebaliknya, pembayaran ditangkap dan ditahan dengan aman oleh BDX. market di eskro hingga pesanan berhasil dikirim dan diverifikasi oleh pembeli atau hingga jendela perlindungan pembeli 7 hari standar berlalu.
Dokumen ini merinci ekosistem pembayaran yang mendukung BDX.market, termasuk konfigurasi sistem, driver pembayaran aktif, biaya, model keamanan, dan spesifikasi teknis penyedia.
Gateway Pembayaran & Adapter yang Didukung
BDX.market menerapkan arsitektur gateway yang dapat dicolok yang didefinisikan di bawah App\Support\Payments\PaymentGatewayManager. Sistem secara dinamis memilih dan menginisialisasi penyedia pembayaran berdasarkan konfigurasi lingkungan (.env) dan flag administratif seluruh situs yang dikelola melalui App\Support\BdxSettings.
+----------------------------------+
| PaymentGatewayManager |
| App\Support\Payments |
+-----------------+----------------+
|
+--------------------+------------+------------+--------------------+
| | | |
+-----v-------+ +-------v------+ +-------v------+ +-------v------+
| Manual | | PipraPay | | EPS | | WooCommerce |
| Gateway | | Gateway | | Gateway | | Bridge (WC) |
+-------------+ +--------------+ +--------------+ +--------------+
(bKash/Nagad/ (Self-hosted (BB-Licensed (Legacy WP/WC
Rocket Proofs) bKash/Nagad/ Aggregator Integration)
Cards API) Cards/MFS)
1. Gateway Manual (manual)
- Kelas:
App\Support\Payments\ManualPaymentGateway - Saluran yang Didukung: bKash, Nagad, Rocket, atau Transfer Bank langsung.
- Mekanisme: Pembeli mengirimkan pembayaran secara manual ke nomor merchant/pribadi bKash/Nagad administratif yang diberikan selama checkout, lalu mengunggah bukti pembayaran (ID Transaksi dan/atau tangkapan layar). Admin meninjau pengiriman melalui Panel Admin Filament (
App\Filament\Resources\MarketplacePaymentResource) dan menyetujui atau menolak bukti. - Kasus Penggunaan: Mode biaya pemrosesan gateway nol; status sistem out-of-the-box default.
2. Gateway PipraPay (piprapay)
-
Kelas:
App\Support\Payments\PipraPayGateway -
Saluran yang Didukung: bKash, Nagad, Rocket, Upay, Visa, MasterCard otomatis.
-
Mekanisme: Integrasi gateway pembayaran otomatis Bangladesh yang di-hosting sendiri. Ini memulai tagihan melalui API RESTful (
POST /api/create-charge) dan mengembalikan URL halaman pembayaran yang dihosting (pp_url). Setelah pembeli menyelesaikan pembayaran, PipraPay menerbitkan webhook server-ke-server yang berisi header kunci API (mh-piprapay-api-key). BDX memverifikasi ganda setiap transaksi sisi server melaluiPOST /api/verify-paymentsmenggunakan referensi transaksi (pp_id) sebelum melepaskan eskro. -
Persyaratan Konfigurasi:
BDX_PIPRAPAY_ENABLED=trueBDX_PIPRAPAY_BASE_URL=https://your-piprapay-instance.comBDX_PIPRAPAY_API_KEY=your_secret_api_keyBDX_PIPRAPAY_CURRENCY=BDT
3. EPS — Gateway Sistem Pembayaran Mudah (eps)
-
Kelas:
App\Support\Payments\EpsPaymentGateway -
Saluran yang Didukung: Agregator berlisensi Bank Bangladesh yang mencakup kartu bank utama Bangladesh, bKash, Nagad, Rocket, CellFin, dan tap.
-
Mekanisme: Alur pengalihan yang dihosting sepenuhnya otomatis.
- Mengautentikasi dengan server EPS (
POST /v1/Auth/GetToken) menggunakan tanda tanganx-hashHMAC-SHA512 untuk menerima token bearer API. - Menginisialisasi transaksi (
POST /v1/EPSEngine/InitializeEPS) dengan kredensial toko dan parameter, memperolehRedirectURLEPS. - Menerima IPN AES-256-CBC terenkripsi di
https://bdx.market/eps/ipn. - Selalu mengeksekusi panggilan verifikasi server-ke-server yang otoritatif (
GET /v1/EPSEngine/CheckMerchantTransactionStatus) menggunakanMerchantTransactionIdsebelum memperbarui status pesanan.
- Mengautentikasi dengan server EPS (
-
Persyaratan Konfigurasi:
BDX_EPS_ENABLED=trueBDX_EPS_MODE=live # or sandboxBDX_EPS_FEE_RATE=3 # 3% gateway surcharge passed to buyerBDX_EPS_TRANSACTION_TYPE=1BDX_EPS_CURRENCY=BDTBDX_EPS_LIVE_BASE_URL=https://pgapi.eps.com.bdBDX_EPS_MERCHANT_ID=your_merchant_idBDX_EPS_STORE_ID=your_store_idBDX_EPS_USERNAME=your_usernameBDX_EPS_PASSWORD=your_passwordBDX_EPS_HASH_KEY=your_sha512_hash_keyBDX_EPS_IPN_SECRET=your_aes_ipn_secret
4. Saldo BDX (bdx_balance)
- Kelas Dukungan:
App\Support\BdxBuyerWallet - Mekanisme: Pembayaran instan di luar buku besar menggunakan kredit toko prabayar pembeli. Saldo BDX membutuhkan nol langkah gateway eksternal saat checkout. Stok dicadangkan secara atomik, pesanan langsung ditandai
paid, dan pengiriman otomatis digital segera terpicu jika berlaku.
Arsitektur Eskro & Struktur Biaya
BDX menegakkan batas transaksi yang aman dan perhitungan biaya yang transparan saat checkout.
Rincian Finansial Pesanan
Saat pembeli membuat pesanan, harga final dihitung dalam Taka Bangladesh (BDT / ৳) menggunakan tiga komponen inti:
Total Price = Item Price * Quantity + Protection Fee + Gateway Surcharge
- Subtotal Barang: Harga satuan dasar yang ditetapkan penjual dikalikan jumlah yang dipilih.
- Biaya Perlindungan Pembeli: Dihitung per kategori pasar menggunakan
MarketplaceCategory::resolvedBuyerFlatFee()danresolvedBuyerPctFee(). Default ke biaya platform tetap ৳15 jika tidak dikonfigurasi. Biaya ini membiayai pemrosesan sengketa, cakupan perlindungan pembeli 7 hari, dan infrastruktur platform. - Biaya Tambahan Gateway (MDR Pass-Through): Diterapkan secara kondisional tergantung metode pembayaran yang dipilih. Untuk pembayaran manual standar dan Saldo BDX, biayanya ৳0. Untuk gateway online dengan biaya pemrosesan tambahan (misalnya MDR EPS 3%),
EpsPaymentGateway::feeFor()menghitung dan menambahkan biaya tambahan langsung ke snapshot pesanan (gateway_fee).
Model Komisi Penjual
BDX tidak membebankan biaya pencantuman atau biaya langganan bulanan kepada penjual. Sebaliknya, BDX mempertahankan komisi berbasis kategori (default 5%) setelah pesanan berhasil diselesaikan.
Saat pesanan selesai, pembayaran bersih penjual dihitung sebagai:
Seller Earnings = (Item Subtotal) * (1 - Commission %)
Dana beralih dari Eskro BDX ke clearing_balance penjual dan selanjutnya berpindah ke available_balance mengikuti jendela kliring wajib.
Model Keamanan & Integritas Webhook
Integrasi pembayaran otomatis harus bertahan dari pemalsuan, serangan replay transaksi, dan manipulasi parameter. BDX menerapkan protokol validasi ketat untuk semua webhook masuk dan endpoint pengembalian callback:
- Invarian Verifikasi Ulang Sisi Server: BDX tidak pernah mempercayai IPN mentah atau string kueri pengalihan browser untuk menandai pesanan sebagai dibayar atau mengkredit dompet. Terlepas dari status yang dilaporkan dalam badan webhook, BDX menerbitkan panggilan HTTP outbound yang terisolasi langsung ke API verifikasi resmi penyedia (
verifyByReference()atauCheckMerchantTransactionStatus) menggunakan kredensial merchant rahasia. - Pencocokan Jumlah Ketat: Webhook masuk diperiksa terhadap
Order::total_price. Jika jumlah yang dibayar berbeda bahkan ৳0,01 dari catatan yang ada, sistem berhenti dengan kode status HTTP409 Conflict. - Tanda Tangan Kriptografis & Dekripsi:
- PipraPay: Memvalidasi keberadaan dan kecocokan header
mh-piprapay-api-keybersama sebelum mengurai muatan. - EPS: Mendekripsi muatan AES-256-CBC masuk menggunakan merchant rahasia
ipn_secret. Langkah inisialisasi menghasilkanMerchantTransactionIdunik 10+ digit yang menggabungkan mikro-detik stempel waktu dan entropi acak untuk mencegah serangan tabrakan.
- PipraPay: Memvalidasi keberadaan dan kecocokan header
- Pencegahan Kondisi Balapan & Pembelanjaan Ganda: Transisi status pesanan menggunakan transaksi basis data dengan batasan
lockForUpdate()untuk menjamin bahwa callback duplikat atau klik ganda cepat tidak dapat memproses pembayaran dua kali.
Panduan terkait
- Alur checkout — Gambaran langkah demi langkah tentang proses checkout pembeli.
- Pemecahan masalah pembayaran — Solusi untuk masalah pembayaran umum dan transaksi gagal.
- Perlindungan pembeli — Kebijakan terperinci tentang eskro BDX dan cakupan pembeli.