Server-to-Server Entegrasyon
Ödeme sürecini tamamen kendi sunucunuzdan yönetmek istiyorsanız bu yöntemi kullanın. Kendi ödeme formunuzu oluşturur, kart bilgilerini doğrudan API'ye gönderirsiniz.
Bu yöntem, kart bilgilerinin sunucunuzdan geçmesini gerektirir. PCI DSS Level 1 sertifikanız yoksa, bu yöntemi kullanmayın. Bunun yerine Hosted Checkout veya Embedded Checkout yöntemlerini tercih edin.
Bu Yöntem Kimler İçin?
- PCI DSS sertifikası olan işletmeler
- Ödeme formunu tamamen kendileri tasarlamak isteyenler
- İleri düzey yazılım geliştirme bilgisine sahip ekipler
Genel Akış
Adım 1: Session Oluşturun
Ödeme almak için önce bir checkout session oluşturmanız gerekir. Bu, Paylox'a "bu tutar için bir ödeme hazırla" demenin yoludur.
Python
import requests
session_resp = requests.post(
"https://api.jetcheckout.com/api/v1/embedded/session",
json={
"merchant_api_key": "BURAYA_API_KEYINIZI_YAZIN",
"amount": 15000, # 150.00 TL = 15000 kuruş
"currency": "TRY",
"customer": {
"name": "Ayşe",
"surname": "Demir",
"email": "[email protected]",
"phone": "+905551234567",
},
"success_url": "https://yoursite.com/payment/success",
"fail_url": "https://yoursite.com/payment/fail",
}
)
session = session_resp.json()
session_id = session["session_id"]
print(f"Session oluşturuldu: {session_id}")
Node.js
const response = await fetch("https://api.jetcheckout.com/api/v1/embedded/session", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
merchant_api_key: "BURAYA_API_KEYINIZI_YAZIN",
amount: 15000,
currency: "TRY",
customer: { name: "Ayşe", surname: "Demir", email: "[email protected]" },
success_url: "https://yoursite.com/payment/success",
fail_url: "https://yoursite.com/payment/fail"
})
});
const session = await response.json();
const sessionId = session.session_id;
Adım 2: Ödeme Yapın
Session oluşturduktan sonra, müşterinin kart bilgileriyle ödeme isteği gönderin.
Python
payment_resp = requests.post(
"https://api.jetcheckout.com/api/v1/payment/pay",
json={
"session_id": session_id,
"payment_type": "creditcard",
"card_holder_name": "AYSE DEMIR",
"card_number": "5388880000000055",
"expire_month": "12",
"expire_year": "2030",
"cvc": "000",
"is_3d": True, # 3D Secure aktif
"installment_count": "1", # Tek çekim
}
)
result = payment_resp.json()
if result.get("redirect_url"):
# 3D Secure gerekli — müşteriyi bu adrese yönlendirin
print(f"3D Secure yönlendirmesi: {result['redirect_url']}")
elif result.get("success"):
# Direkt ödeme başarılı (3D Secure gerektirmedi)
print(f"Ödeme başarılı! Sipariş No: {result['order_id']}")
Node.js
const paymentResp = await fetch("https://api.jetcheckout.com/api/v1/payment/pay", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
session_id: sessionId,
payment_type: "creditcard",
card_holder_name: "AYSE DEMIR",
card_number: "5388880000000055",
expire_month: "12",
expire_year: "2030",
cvc: "000",
is_3d: true,
installment_count: "1"
})
});
const result = await paymentResp.json();
if (result.redirect_url) {
// 3D Secure gerekli — müşteriyi yönlendirin
res.redirect(result.redirect_url);
} else if (result.success) {
console.log("Ödeme başarılı! Sipariş No:", result.order_id);
}
Çoğu banka, güvenlik nedeniyle 3D Secure doğrulaması gerektirir. Bu durumda API yanıtında redirect_url döner. Müşteriyi bu adrese yönlendirmeniz gerekir. Doğrulama sonrası müşteri, sizin success_url veya fail_url adresinize geri döner.
Adım 3: Ödeme Durumunu Doğrulayın
Ödeme tamamlandıktan sonra (özellikle 3D Secure akışından sonra), ödemenin gerçekten başarılı olduğunu mutlaka doğrulayın.
Python
status_resp = requests.get(
f"https://api.jetcheckout.com/api/v1/payment/status/{result['order_id']}",
params={"session_id": session_id}
)
status = status_resp.json()
if status["success"] and status["status"] == "completed":
print("Ödeme doğrulandı ve başarılı!")
# Siparişi onaylayın, ürünü gönderin, vb.
else:
print("Ödeme başarısız veya doğrulanamadı.")
Canlı Demo
Bu entegrasyon yöntemini test etmek için Playground sayfasını ziyaret edin ve sandbox modunda deneyimleyin.