İçeriğe geç
Better Payment
Entegrasyonlar

Cloudflare Workers

Better Payment'i toFetchHandler ile bir Cloudflare Worker'da çalıştırın.

Better Payment yalnızca fetch ve WebCrypto kullanır; bu yüzden bir Worker'da nodejs_compat bayrağı olmadan çalışır. toFetchHandler, ödeme handler'ını bir Worker fetch fonksiyonuna çevirir.

1. Anahtarlarınızı secret olarak ekleyin

npx wrangler secret put IYZICO_API_KEY
npx wrangler secret put IYZICO_SECRET_KEY

2. Worker'ı oluşturun

// src/index.ts
import { betterPayment, iyzico, toFetchHandler } from 'better-payment';

interface Env {
  IYZICO_API_KEY: string;
  IYZICO_SECRET_KEY: string;
}

export default {
  fetch(request: Request, env: Env): Promise<Response> {
    const payment = betterPayment({
      mode: 'sandbox',
      providers: {
        iyzico: iyzico({ apiKey: env.IYZICO_API_KEY, secretKey: env.IYZICO_SECRET_KEY }),
      },
    });
    return toFetchHandler(payment)(request);
  },
};

Worker'lar secret'ları process.env'de değil env'de verir; bu yüzden örnek fetch içinde oluşturulur. Oluşturmak ucuzdur: yalnızca yapılandırmayı okur.

3. Ödeme başlatın

Route'lar /api/pay altında sunulur, frontend onları doğrudan çağırır:

const res = await fetch('/api/pay/iyzico/payment/init-3ds', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify(paymentRequest),
});

Tipli istemci (better-payment/client) aynı route'ları sarmalar.

4. Callback adresleri

callbackUrl'i https://siteniz.com/api/pay/<provider>/payment/complete-3ds olarak ayarlayın. Handler callback'i doğrular, onCallback'i çağırır ve müşteriyi callbackRedirect ile yönlendirir.

PayTR için PayTR panelindeki bildirim URL'ini https://siteniz.com/api/pay/paytr/callback olarak ayarlayın.

Idempotency

Varsayılan idempotency deposu, tekrar eden callback ve Idempotency-Key kayıtlarını bellekte tutar ve her isolate'in kendi belleği vardır. Canlı ortamda paylaşımlı bir depo verin. Seçenekler için edge ortamları sayfasına bakın. Workers'da atomik setIfAbsent'i Durable Objects ya da D1 sağlayabilir; Workers KV nihai tutarlı (eventually consistent) olduğu için sağlayamaz.