Better Payment
Kavramlar

Plugin'ler

better-payment'e plugin'lerle özellik ekleyin — ödeme olayları, sağlayıcı yönlendirme ve kendi mantığınız.

0.5.0 sürümünde eklendi

Plugin, kütüphaneyi değiştirmeden ödeme nesnesine davranış ekler. Ödeme olaylarına tepki verebilir, sağlayıcı işlemlerinden önce ve sonra kod çalıştırabilir, ödeme nesnesine metot ve HTTP handler'a adres ekleyebilir. Plugin'ler düz nesnelerdir; bu yüzden bir plugin çoğu zaman birkaç satıra sığar ve kendi plugin'inizi yazabilirsiniz.

Plugin kullanmak

import { betterPayment, iyzico, paytr } from 'better-payment';
import { auditLog } from './plugins/audit-log';

export const payment = betterPayment({
  providers: {
    iyzico: iyzico({ /* ... */ }),
    paytr: paytr({ /* ... */ }),
  },
  plugins: [auditLog()],
});

Plugin'ler plugins dizisindeki sırayla çalışır. Hook'ları, olay dinleyicileri ve endpoint'leri ödeme nesnesi oluşturulurken kaydedilir. init fonksiyonları ilk işlemden önce bir kez çalışır.

Bir plugin neler yapabilir?

ParçaNe yaparÖrnek
eventsÖdeme olaylarını dinlerSiparişleri güncellemek, e-posta göndermek, denetim kaydı tutmak
hooks.beforeİşlemden önce çalışır. Sağlayıcıyı seçebilir, isteği değiştirebilir ya da sağlayıcıyı çağırmadan bir sonuç döndürebilirÖdemeleri en ucuz sağlayıcıya göndermek, bir kartı engellemek, sipariş numarası eklemek
hooks.afterİşlemden sonra çalışır ve sonucu değiştirebilirHata mesajlarını çevirmek
initİlk işlemden önce bir kez çalışırKomisyon tablolarını yüklemek, önbelleği ısıtmak
methodsÖdeme nesnesine üye eklerpayment.router.quote()
endpointsHTTP handler'a adres eklerPOST /api/pay/router/quote
$ERROR_CODESPlugin'in hata kodlarını tanımlarNO_ELIGIBLE_PROVIDER

Plugin'in eklediği her şey tiplidir: payment.router.quote() otomatik tamamlanır, bir yazım hatası tip hatası olur.

İşlemler

Hook'lar şu işlemlerde çalışır; işlem ödeme nesnesinde (payment.createPayment()), bir sağlayıcıda (payment.iyzico.createPayment()) ya da HTTP handler üzerinden çağrılmış olabilir:

createPayment, initThreeDSPayment, completeThreeDSPayment, authorize, initThreeDSAuthorize, capture, voidAuthorization, refund, cancel, getPayment, saveCard, listCards, deleteCard, binCheck, installmentInfo

Sağlayıcıya özel metotlar (iyzico ödeme formu, PWI ve abonelikler, PayTR token ödemeleri) hook'suz çalışır.

Bir hook yalnızca ödeme nesnesinde yapılan çağrıları başka bir sağlayıcıya taşıyabilir. Bir sağlayıcıda (payment.iyzico.refund()) ya da handler'ın bir sağlayıcı adresi üzerinden yapılan çağrı her zaman o sağlayıcıda çalışır: iade, iptal ve durum sorguları ödemeyi alan sağlayıcıya gitmelidir.

Resmi plugin'ler

Resmi plugin'ler paketle birlikte, better-payment/plugins altında gelir:

PluginNe yapar
localizedErrorsMüşteriler için, kendi dillerinde hata mesajları (İngilizce, Türkçe, Almanca, Rusça ve Arapça dahil)

Planlanan: her ödemeyi en ucuz sağlayıcıya gönderen bir komisyon yönlendirici (#51). Başka bir şeye mi ihtiyacınız var? Kendi plugin'inizi yazın; birkaç satır yeterli.

Bu sayfada