Ana içeriğe geç

Header

BDX Ödeme Genel Bakışı ve Desteklenen Geçitler

BDX.market, Bangladeş'in önde gelen oyun ve dijital ürün emanet pazaryeridir. Alıcıları ve satıcıları sahteciliğe, hesap geri alma dolandırıcılıklarına ve teslimat yapmamaya karşı korumak için BDX katı bir alıcı koruma emanet mimarisi işletir.

Bu mimaride, bir alıcı bir ürün veya yükleme için ödeme yaptığında tutar doğrudan satıcının kişisel hesabına gönderilmez. Bunun yerine ödemeler BDX tarafından güvenli şekilde tahsil edilir ve sipariş başarıyla teslim edilip alıcı tarafından doğrulanana veya standart 7 günlük alıcı koruma süresi geçene kadar emanette bekletilir.

Bu belge, sistem yapılandırması, aktif ödeme sürücüleri, ücretler, güvenlik modelleri ve sağlayıcı teknik özellikleri dahil olmak üzere BDX.market'e güç veren ödeme ekosistemini ayrıntılarıyla açıklar.


Desteklenen Ödeme Geçitleri ve Bağdaştırıcılar​

BDX.market, App\Support\Payments\PaymentGatewayManager altında tanımlanan takılabilir bir geçit mimarisi uygular. Sistem, ortam yapılandırmasına (.env) ve App\Support\BdxSettings üzerinden yönetilen site geneli yönetici işaretlerine göre ödeme sağlayıcılarını dinamik olarak seçer ve başlatır.

+----------------------------------+
| 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. Manuel Geçit (manual)​

  • Sınıf: App\Support\Payments\ManualPaymentGateway
  • Desteklenen Kanallar: Doğrudan bKash, Nagad, Rocket veya Banka Transferleri.
  • Mekanizma: Alıcılar ödemeyi ödeme sırasında verilen yönetici bKash/Nagad satıcı/kişisel numaralarına manuel olarak gönderir, ardından ödeme kanıtını (İşlem Kimliği ve/veya ekran görüntüsü) yükler. Yöneticiler gönderimi Filament Yönetici Paneli (App\Filament\Resources\MarketplacePaymentResource) üzerinden inceler ve kanıtı onaylar veya reddeder.
  • Kullanım Durumu: Sıfır geçit işlem ücreti modu; varsayılan kullanıma hazır sistem durumu.

2. PipraPay Geçidi (piprapay)​

  • Sınıf: App\Support\Payments\PipraPayGateway

  • Desteklenen Kanallar: Otomatik bKash, Nagad, Rocket, Upay, Visa, MasterCard.

  • Mekanizma: Kendi barındırılan Bangladeşli otomatik ödeme geçidi entegrasyonu. RESTful API (POST /api/create-charge) ile tahsilat başlatır ve barındırılan ödeme sayfası URL'si (pp_url) döndürür. Alıcı ödemeyi tamamladıktan sonra PipraPay, API anahtarı başlığı (mh-piprapay-api-key) içeren sunucudan sunucuya bir webhook gönderir. BDX, emaneti serbest bırakmadan önce her işlemi işlem referansını (pp_id) kullanarak POST /api/verify-payments ile sunucu tarafında iki kez doğrular.

  • Yapılandırma Gereklilikleri:

    BDX_PIPRAPAY_ENABLED=true
    BDX_PIPRAPAY_BASE_URL=https://your-piprapay-instance.com
    BDX_PIPRAPAY_API_KEY=your_secret_api_key
    BDX_PIPRAPAY_CURRENCY=BDT

3. EPS — Easy Payment System Geçidi (eps)​

  • Sınıf: App\Support\Payments\EpsPaymentGateway

  • Desteklenen Kanallar: Başlıca Bangladeş banka kartlarını, bKash, Nagad, Rocket, CellFin ve tap'i kapsayan Bangladeş Bankası lisanslı toplayıcı.

  • Mekanizma: Tam otomatik barındırılan yönlendirme akışı.

    1. API taşıyıcı jetonu almak için HMAC-SHA512 x-hash imzasıyla EPS sunucularında kimlik doğrular (POST /v1/Auth/GetToken).
    2. Mağaza bilgileri ve parametrelerle işlemi başlatır (POST /v1/EPSEngine/InitializeEPS) ve bir EPS RedirectURL alır.
    3. https://bdx.market/eps/ipn adresinde şifreli AES-256-CBC IPN'leri alır.
    4. Sipariş durumunu güncellemeden önce MerchantTransactionId kullanarak her zaman yetkili sunucudan sunucuya doğrulama çağrısı (GET /v1/EPSEngine/CheckMerchantTransactionStatus) yürütür.
  • Yapılandırma Gereklilikleri:

    BDX_EPS_ENABLED=true
    BDX_EPS_MODE=live # or sandbox
    BDX_EPS_FEE_RATE=3 # 3% gateway surcharge passed to buyer
    BDX_EPS_TRANSACTION_TYPE=1
    BDX_EPS_CURRENCY=BDT
    BDX_EPS_LIVE_BASE_URL=https://pgapi.eps.com.bd
    BDX_EPS_MERCHANT_ID=your_merchant_id
    BDX_EPS_STORE_ID=your_store_id
    BDX_EPS_USERNAME=your_username
    BDX_EPS_PASSWORD=your_password
    BDX_EPS_HASH_KEY=your_sha512_hash_key
    BDX_EPS_IPN_SECRET=your_aes_ipn_secret

4. BDX Bakiyesi (bdx_balance)​

  • Destek Sınıfı: App\Support\BdxBuyerWallet
  • Mekanizma: Önceden yüklenmiş alıcı mağaza kredisiyle anlık defter dışı ödeme. BDX Bakiyesi ödemede sıfır harici geçit adımı gerektirir. Stok atomik olarak rezerve edilir, sipariş anında paid olarak işaretlenir ve geçerli olduğu yerde dijital otomatik teslimat hemen tetiklenir.

Emanet Mimarisi ve Ücret Yapıları​

BDX, ödemede güvenli işlem sınırları ve şeffaf ücret hesaplamaları uygular.

Bir Siparişin Finansal Dağılımı​

Bir alıcı sipariş oluşturduğunda, nihai fiyat Bangladeş Takası (BDT / ৳) cinsinden üç temel bileşenle hesaplanır:

Toplam Fiyat = Ürün Fiyatı * Miktar + Koruma Ücreti + Geçit Ek Ücreti

  1. Ürün Ara Toplamı: Satıcı tarafından belirlenen temel birim fiyatın seçilen miktarla çarpımı.
  2. Alıcı Koruma Ücreti: MarketplaceCategory::resolvedBuyerFlatFee() ve resolvedBuyerPctFee() kullanılarak pazaryeri kategorisine göre hesaplanır. Yapılandırılmamışsa varsayılan olarak sabit ৳15 platform ücreti uygulanır. Bu ücret anlaşmazlık işleme, 7 günlük alıcı koruma kapsamı ve platform altyapısını finanse eder.
  3. Geçit Ek Ücreti (MDR Yansıtma): Seçilen ödeme yöntemine göre koşullu uygulanır. Standart manuel ödemeler ve BDX Bakiyesi için ücret ৳0'dır. İşlem ek ücretli çevrim içi geçitlerde (örn. EPS %3 MDR), EpsPaymentGateway::feeFor() ek ücreti hesaplar ve doğrudan sipariş anlık görüntüsüne ekler (gateway_fee).

Satıcı Komisyon Modeli​

BDX satıcılardan ürün listeleme veya aylık abonelik ücreti almaz. Bunun yerine BDX, siparişin başarıyla tamamlanmasında kategoriye dayalı komisyonu (varsayılan %5) alıkoyar.

Bir sipariş tamamlandığında net satıcı ödemesi şöyle hesaplanır:

Satıcı Kazancı = (Ürün Ara Toplamı) * (1 - Komisyon %)

Tutar BDX Emanetinden satıcının clearing_balance bakiyesine geçer ve ardından zorunlu netleşme süresi sonunda available_balance bakiyesine taşınır.


Güvenlik Modelleri ve Webhook Bütünlüğü​

Otomatik ödeme entegrasyonları sahteciliğe, işlem tekrar saldırılarına ve parametre kurcalamaya karşı savunulmalıdır. BDX, gelen tüm webhook'lar ve geri arama dönüş uç noktaları için katı doğrulama protokolleri uygular:

  1. Sunucu Tarafı Yeniden Doğrulama Değişmezi: BDX, bir siparişi ödendi olarak işaretlemek veya cüzdana alacak kaydetmek için ham IPN'lere veya tarayıcı yönlendirme sorgu dizelerine asla güvenmez. Webhook gövdesinde bildirilen durum ne olursa olsun, BDX gizli satıcı bilgileriyle sağlayıcının resmi doğrulama API'sine (verifyByReference() veya CheckMerchantTransactionStatus) yalıtılmış, giden bir HTTP çağrısı yapar.
  2. Katı Tutar Eşleştirme: Gelen webhook'lar Order::total_price ile karşılaştırılır. Ödenen tutar kayıttaki tutardan ৳0,01 bile farklıysa sistem 409 Conflict HTTP durum koduyla durur.
  3. Kriptografik İmzalar ve Şifre Çözme:
    • PipraPay: Yükleri ayrıştırmadan önce paylaşılan mh-piprapay-api-key başlığının varlığını ve eşleşmesini doğrular.
    • EPS: Gizli satıcı ipn_secret ile gelen AES-256-CBC yüklerinin şifresini çözer. Başlatma adımı, çakışma saldırılarını önlemek için zaman damgası mikro saniyeleri ve rastgele entropi içeren 10+ haneli benzersiz MerchantTransactionId üretir.
  4. Yarış Durumu ve Çift Harcama Önleme: Sipariş durumu geçişleri, yinelenen geri aramaların veya hızlı çift tıklamaların ödemeleri iki kez işlemesini garanti edememesi için lockForUpdate() kısıtlamalı veritabanı işlemleri kullanır.

İlgili rehberler​