Ana içeriğe geç

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.

PCI DSS Uyarısı

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);
}
3D Secure Hakkında

Ç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.