Hosted Checkout (Yönlendirme)
En kolay entegrasyon yöntemi. Müşteriyi checkout.paylox.io adresine yönlendirirsiniz, ödeme tamamlandığında geri yönlendirilir.
Ne Zaman Kullanmalı?
- Hızlı entegrasyon istiyorsanız
- Ödeme sayfası tasarımıyla uğraşmak istemiyorsanız
- PCI DSS uyumluluğu gereksinimleriniz varsa
Adım 1: Backend'de Session Oluşturun
Müşteri "Ödeme Yap" butonuna tıkladığında, backend'inizden session oluşturun:
# Python (Flask/Django)
import requests
def create_payment(request):
response = requests.post(
"https://api.paylox.io/api/v1/checkout/session",
json={
"merchant_api_key": "YOUR_API_KEY",
"amount": int(order.total * 100), # Kuruş cinsinden
"currency": "TRY",
"customer": {
"name": request.user.first_name,
"surname": request.user.last_name,
"email": request.user.email,
"phone": request.user.phone,
},
"success_url": f"https://yoursite.com/orders/{order.id}/success",
"fail_url": f"https://yoursite.com/orders/{order.id}/fail",
"metadata": {
"order_id": str(order.id),
}
}
)
data = response.json()
return redirect(data["checkout_url"])
Adım 2: Müşteriyi Yönlendirin
// Frontend
window.location.href = "https://checkout.paylox.io?session=ses_abc123";
Müşteri bu sayfada:
- Ödeme yöntemini seçer (kredi kartı, havale, cüzdan, vb.)
- Bilgilerini girer
- Ödemeyi tamamlar
Adım 3: Sonucu İşleyin
Ödeme sonrası müşteri belirttiğiniz URL'e yönlendirilir:
✅ Başarılı: https://yoursite.com/orders/123/success?order_id=ORD-xxx&status=success&session_id=ses_xxx
❌ Başarısız: https://yoursite.com/orders/123/fail?order_id=ORD-xxx&status=failed&session_id=ses_xxx
Önemli
URL parametrelerine güvenmeyin! Ödeme durumunu mutlaka API'den doğrulayın:
GET /api/v1/payment/status/{order_id}?session_id=ses_xxx
Tam Çalışan Örnek (Node.js + Express)
const express = require("express");
const app = express();
// Ödeme başlat
app.post("/checkout", async (req, res) => {
const response = await fetch("https://api.paylox.io/api/v1/checkout/session", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
merchant_api_key: process.env.PAYLOX_API_KEY,
amount: req.body.amount,
currency: "TRY",
customer: { name: req.body.name, email: req.body.email },
success_url: "https://yoursite.com/payment/success",
fail_url: "https://yoursite.com/payment/fail"
})
});
const data = await response.json();
res.redirect(data.checkout_url);
});
// Başarılı ödeme
app.get("/payment/success", async (req, res) => {
const { order_id, session_id } = req.query;
// API'den doğrula
const check = await fetch(
`https://api.paylox.io/api/v1/payment/status/${order_id}?session_id=${session_id}`
);
const result = await check.json();
if (result.success) {
res.send("Ödemeniz başarıyla tamamlandı!");
} else {
res.send("Ödeme doğrulanamadı.");
}
});
app.listen(3000);