Next.js, Express ve Hono İçin Tek Satırda Webhook Endpoint
3D Secure callback'leri ve sağlayıcı bildirimleri için güvenli uç nokta. İstek gövdelerini sabit zamanda doğrular; iade ve iptal gibi hassas rotaları authorize hook'u ile korur.
- 1
Banka callback'i
POST /api/payment/callback İmza doğrulama
timingSafeEqual(hash)- 3
Sipariş eşleşmesi
invoice_id === order_id - 4
Kodunuz
onPaymentSuccess()
Bu özellik neden işinize yarar?
Sabit Zamanlı İmza Doğrulama
Kriptografik timing saldırılarını önleyen güvenli hash karşılaştırması.
Tek Satırda Next.js Desteği
app/api/pay/route.ts dosyasına export const { GET, POST } yazmanız yeterlidir.
Authorize Hook Koruması
İade ve iptal gibi riskli işlemler authorize kancası tanımlanmadan çalıştırılamaz.
Multi-Framework Desteği
Express, Fastify, Hono, Node.js http ve Web standardı Request/Response uyumu.
Basit, anlaşılır ve doğrudan.
Better Payment olmadan
Her callback için elle imza hesaplama, açıkta kalan iade endpoint'leri ve CSRF riskleri.
Better Payment ile
Otomatik doğrulanmış, zamanlama saldırılarına karşı korumalı ve tek satırda entegre edilen handler.
// app/api/pay/route.ts (Next.js App Router)
import { createPaymentHandler } from "better-payment/next";
import { payment } from "@/lib/payment";
export const { GET, POST } = createPaymentHandler({
payment,
// Protect sensitive endpoints
async authorize(req, action) {
if (action === "refund" || action === "cancel") {
const session = await getAdminSession(req);
return session?.role === "ADMIN";
}
return true;
},
async onPaymentSuccess(result) {
await db.orders.update({ id: result.orderId, status: "PAID" });
}
});