Better Payment
Başlarken

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'siz3D SecureİadeİptalDurumBINTaksit
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

On this page