Binance Pay
Binance Pay ile kripto tahsilat, müşteri Binance uygulaması ya da web checkout'undan öder, bakiye Binance'in imzalı bildirimiyle yüklenir.
Gereken bilgiler
Binance Merchant Admin Portal → Developer menüsünden yeni bir API anahtar çifti oluşturun:
api_key: Binance'in "API identity key" dediği değersecret_key: "API secret key"; yalnız oluşturma anında tam gösterilir, hemen kaydedin (sonradan görünen kısaltılmış hali çalışmaz)
Panelinizde Ayarlar → Ödemeler → Yöntem ekle → Binance Pay seçin, iki değeri girin.
Sandbox yok: Binance Pay'in ayrı bir test ortamı yoktur; tek adres bpay.binanceapi.com'dur. "Sandbox (test) modu" kutusunun bu yöntemde etkisi yoktur, akışı denemek için gerçek anahtarla küçük tutarlı bir sipariş açın ve ödemeden bırakın (sipariş bir saat sonra PAY_CLOSED ile kapanır).
IP kısıtı: Merchant Portal'daki "IP Access Restrictions" alanı doluysa Binance yalnız o IP'lerden gelen çağrıları kabul eder (hata 400004). Ya alanı boş bırakın ya da sunucumuzun IP'sini ekleyin.
Bildirim (webhook) adresi
Bildirim adresini Binance panelinde ayarlamanız gerekmez: panel her siparişe kendi adresini webhookUrl alanında iliştirir ve Binance dokümanına göre bu alan portaldaki ayarı geçersiz kılar. Adres kalıbı:
https://<panel-alan-adınız>/payments/binance_pay/callback
Bu adrese gelen istek müşterinin tarayıcısı değil, Binance'in sunucusudur. Müşterinin tarayıcısı ödeme sonrası /payments/binance_pay/return adresine döner; o sayfa yalnız yönlendirir, bakiye yüklemez.
Akış
- Müşteri tutarı girer, Binance Pay'i seçer.
- Panel Binance'te bir sipariş açar (
Create Order v3) ve müşteriyi Binance'in barındırdığı ödeme sayfasına yönlendirir; orada QR ile Binance uygulamasından ya da Binance hesabıyla giriş yaparak öder. - Binance, siparişin
merchantTradeNoalanındaki bizim referansımızla birlikte imzalı bir bildirim gönderir. - Panel bildirimi Binance'in RSA açık anahtarıyla doğrular (anahtar, imzalı
certificatesçağrısıyla Binance'ten alınır ve 6 saat önbellekte tutulur; doğrulama tutmazsa bir kez yenilenir). İmza tutmayan bildirim reddedilir ve bakiye yüklenmez. PAY_SUCCESSgelirse bakiye yüklenir; Binance'e{"returnCode":"SUCCESS"}yanıtı verilir. Aynı sipariş için tekrar gelen bildirim yok sayılır.
Müşteri ödemeyi tamamlayıp panele döndüğünde bildirim henüz gelmemiş olabilir; bakiye birkaç saniye içinde, bildirim işlendiğinde görünür. Bildirim ulaşmazsa Binance altı kez daha dener.
Durumlar
Binance bizStatus |
Panelde |
|---|---|
PAY_SUCCESS |
ödeme tamamlandı, bakiye yüklendi |
PAY_CLOSED |
sipariş ödenmeden kapandı (süre doldu / iptal) → "süresi doldu" |
PAY_FAIL |
yalnız otomatik ödeme (direct debit) sözleşmelerinde gelir → "başarısız" |
Binance Pay siparişleri ya tamamen ödenir ya da hiç ödenmez; eksik ödeme durumu yoktur.
Para birimleri
Binance siparişleri kriptoyla (varsayılan USDT) tahsil eder. Panelinizin para birimine göre iki yol vardır:
- TRY, USD, EUR ve diğer itibari paralar: tutar Binance'e
fiatAmount+fiatCurrencyolarak gönderilir; Binance kendi piyasa kuruyla USDT karşılığını hesaplar ve müşteriden o kadar USDT alır. Bakiyeye müşterinin istediği tutar (ör. 100 TRY) yüklenir; Binance'in tahsil ettiği kripto tutarı ödeme kaydına not düşülür. Desteklenen itibari para listesi Binance'inasset-service/product/currencylistesidir (TRY ve USD listededir). Kur Binance'indir; panel kur uygulamaz. - USDT, USDC, BNB, BTC: yöntem para birimi bunlardan biriyse tutar doğrudan
orderAmount+currencyile gönderilir ve bildirimdeki tahsil edilen tutar bakiyeyle birebir karşılaştırılır.
currency: "USD" seçeneği Binance'te yalnız BPay'e özel onaylı üye işyerlerine açıktır; bu yüzden USD panelleri de itibari yoldan (fiat) gönderilir.
Binance'in komisyonu Binance hesabınızdan düşer; panel bakiyesine siparişin tam tutarı yüklenir.
Sık sorunlar
400002 INVALID_SIGNATURE/400004 INVALID_API_KEY_OR_IP: anahtar çifti yanlış ya da kısaltılmış haliyle kopyalanmış; IP kısıtı varsa sunucu IP'si listede değil.400003 INVALID_TIMESTAMP: Binance isteği 1 saniyelik pencerede işler; sunucu saati NTP ile eşit olmalı (bizim sunucularımızda eşittir).400201 INVALID_MERCHANT_TRADE_NO: aynı referansla ikinci sipariş; panel her ödeme için yeni referans üretir, bu hata görülürse Admin → Ödemeler'deki kaydın notuna bakın.- Ödeme yapıldı ama bakiye yok: Bildirim imzası doğrulanamadıysa panel
400döner ve Binance yeniden dener; Admin → Ödemeler'de kayıt "bekliyor"da kalır. Anahtarların doğru Merchant hesabına ait olduğundan emin olun (sertifika çağrısı da aynı anahtarla imzalanır). - Dönüş sayfasında "ödendi" görünüyor ama bakiye bekliyor: tarayıcı dönüşü bildirimden önce gelebilir; birkaç saniye bekleyip sayfayı yenileyin.
FollowerHQ