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 ve Parampos) 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)

¹ 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.

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

Bu sayfada