Giriş
Node.js ve Türk ödeme sağlayıcıları için tip güvenli, birleşik ödeme kütüphanesi.
Better Payment, Türk ödeme sağlayıcılarını (iyzico, PayTR, Akbank, Parampos, Sipay, Kuveyt Türk ve EST bankaları: İş Bankası, Ziraat, Halkbank, TEB, Şekerbank) tek bir TypeScript API'siyle entegre etmenizi sağlar.
0.0.1 yeni bir başlangıç. Sürüm geçmişi sıfırlandı. 1.x–3.x sürümlerinde hatalı sağlayıcı entegrasyonları ve atlatılabilen callback kontrolleri vardı; bu sürümler kullanımdan kaldırıldı. Nelerin değiştiğini ve nasıl geçiş yapacağınızı 0.0.1'deki yenilikler sayfasında okuyun.
Neden Better Payment?
Her ödeme sağlayıcısının kendi SDK'sı, istek formatı, imza yöntemi ve hata modeli var. Better Payment bu farkları tek bir arayüzün arkasına gizler.
Tek API
createPayment, initThreeDSPayment, refund, cancel ve getPayment her sağlayıcıda aynı şekilde çalışır.
Doğrulanmış callback'ler
3D Secure callback'leri, hiçbir sonuca güvenilmeden önce sizin kimlik bilgilerinizle kontrol edilir.
Güvenli HTTP handler
Framework'ten bağımsız handler yalnızca sizin açtığınız işlemleri sunar; authorize ve tutarı sunucuda belirleme hook'ları vardır.
Çoklu sağlayıcı
Birden fazla sağlayıcıyı aynı anda etkinleştirin, her istekte birini seçin.
Plugin'ler
Ödeme olayları, sağlayıcı yönlendirme ve daha fazlası plugin olarak gelir. Kendi plugin'inizi birkaç satırda yazın.
Desteklenen sağlayıcılar
| Sağlayıcı | 3D'siz | 3D Secure | İade | İptal | Durum | BIN | Taksit |
|---|---|---|---|---|---|---|---|
| iyzico | |||||||
| PayTR | ¹ | iFrame | ² | ||||
| Akbank | 3D_PAY | — | — | ||||
| Parampos | (TRY) | ||||||
| Sipay | ⁴ | paySmart3D | ⁴ | ||||
| Kuveyt Türk | — | KT Pay Gate | ³ | — | — | ||
| EST (İş Bankası, Ziraat, Halkbank, TEB, Şekerbank) | 3D / 3D Pay / 3D Host | — | — |
¹ PayTR hesabınızın 3D'siz ödemeler için onaylanmış olması gerekir.
² PayTR'de iptal (void) uç noktası yoktur; bu yüzden cancel() tam iade yapar.
³ Kuveyt Türk'te iptal aynı gün, gün sonundan önce yapılır; sonrasında refund() kullanın.
⁴ Sipay'de iptal (void) uç noktası yoktur: cancel() ödemenin kalanını iade eder, Sipay bunu aynı gün içinde iptal olarak işler. 3D'siz ödeme için hesabınızın Sipay tarafından onaylanması da gerekir.
Kısa örnek
import { betterPayment, iyzico } from 'better-payment';
const payment = betterPayment({
mode: 'sandbox',
providers: {
iyzico: iyzico({
apiKey: process.env.IYZICO_API_KEY!,
secretKey: process.env.IYZICO_SECRET_KEY!,
}),
},
});
const result = await payment.initThreeDSPayment({
price: '100.00',
paidPrice: '100.00',
currency: 'TRY',
basketId: 'B1',
callbackUrl: 'https://yoursite.com/api/pay/iyzico/payment/complete-3ds',
paymentCard: { /* ... */ },
buyer: { /* ... */ },
shippingAddress: { /* ... */ },
billingAddress: { /* ... */ },
basketItems: [{ /* ... */ }],
});
// Render result.threeDSHtmlContent in the customer's browser