E-ticaret siteleri, online randevu/rezervasyon sistemleri, üyelikli platformlar veya dijital ürün satışları… Urfa’da işletmeler artık online ödeme alma ihtiyacı duyuyor. Bu noktada en çok sorulan sorulardan biri şu:
“PHP ile ödeme entegrasyonu nasıl yapılır?”
[UrfaWebTasarım] olarak Urfa’da web tasarım ve yazılım hizmeti verirken, müşterilerimizin en sık talep ettiği hizmetlerden biri de banka / sanal POS / ödeme kuruluşu entegrasyonu oluyor. Bu yazıda PHP ile ödeme entegrasyonunun mantığını, adımlarını ve dikkat edilmesi gerekenleri net şekilde anlatıyoruz.
Ödeme entegrasyonu; web sitenizin bir ödeme altyapısı ile (ör. sanal POS veya ödeme kuruluşu) güvenli şekilde haberleşerek müşteriden kartla ödeme almasını sağlayan sistemdir.
En yaygın senaryolar:
Kredi/banka kartı ile ödeme
3D Secure doğrulama
Taksit seçenekleri
İade (refund) ve iptal işlemleri
Sipariş durumunun otomatik güncellenmesi
PHP tarafında entegrasyon genelde şu parçalarla yapılır:
Checkout (Ödeme sayfası)
Token/Order oluşturma (Sipariş kaydı)
Ödeme isteği gönderme (API)
3D Secure yönlendirme (varsa)
Callback/Webhook ile ödeme sonucunu doğrulama
Sipariş durumunu güncelleme + e-posta/SMS bilgilendirme
Kritik nokta:Ödeme “başarılı” görünse bile mutlaka ödeme sağlayıcının sunucusundan doğrulama yapılmalıdır.
Aşağıdaki adımlar, çoğu ödeme sağlayıcısı için ortak mantıktır (PayTR / iyzico / Paynet / Param / bankaların sanal POS’ları gibi).
Genellikle şunlar verilir:
API Key / Secret Key
Merchant ID (mağaza numarası)
Callback (bildirim) URL
Test ortamı bilgileri
Ödeme başlamadan önce:
order_id
user_id
amount
status = pending
created_at
kayıt edilir.
Bu sayede ödeme yarıda kesilse bile kaydınız olur.
PHP ile ödeme sağlayıcının API’sine istek atılır. Çoğu sistem:
JSON body
HMAC / hash imza (signature)
kullanır.
Önemli: Bu istek sunucu tarafında yapılmalı, anahtarlar asla front-end’e çıkmamalı.
Ödeme sağlayıcı size bir:
yönlendirme URL’i veya
HTML form
döndürür.
Kullanıcı bankanın 3D ekranına gider ve doğrular.
En kritik adım burasıdır.
Ödeme sağlayıcı, belirlediğiniz callback URL’e ödeme sonucunu gönderir.
Sizin yapmanız gereken:
Gelen isteğin hash/signature doğrulamasını yapmak
order_id ile eşleştirmek
Sağlayıcıdan “ödeme sorgulama” ile sonucu teyit etmek
Siparişi paid veya failed yapmak
Fatura/fiş oluşturma
Stok düşme
Kullanıcıya e-posta/SMS
Yönetim paneline bildirim
Kargo/teslimat süreçleri
Stripe PHP SDK'sını Composer ile kurabilirsiniz:
composer require stripe/stripe-php<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Ödeme Formu</title>
</head>
<body>
<form action="charge.php" method="post" id="payment-form">
<label for="card-element">Kredi Kartı</label>
<div id="card-element"></div>
<button type="submit">Ödeme Yap</button>
</form>
<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe('your-public-key-here');
var elements = stripe.elements();
var card = elements.create('card');
card.mount('#card-element');
</script>
</body>
</html><?php
require 'vendor/autoload.php';
\Stripe\Stripe::setApiKey('your-secret-key-here');
$token = $_POST['stripeToken'];
try {
$charge = \Stripe\Charge::create([
'amount' => 5000,
'currency' => 'usd',
'description' => 'Örnek Ödeme',
'source' => $token,
]);
echo 'Ödeme başarılı!';
} catch (\Stripe\Exception\CardException $e) {
echo 'Ödeme başarısız: ' . $e->getMessage();
}
?>Urfa’daki işletmelerin en çok zarar gördüğü kısım güvenlik tarafıdır. PHP ile ödeme entegrasyonunda şunlar şart:
SSL (HTTPS) zorunlu
API anahtarları .env içinde saklanmalı
SQL Injection koruması (prepared statements)
CSRF koruması (özellikle ödeme başlatma formlarında)
Webhook endpoint IP/Signature kontrolü
Loglama (hata ayıklama ve fraud analizi için)
Ayrıca PCI-DSS nedeniyle kart bilgisini kendi sunucunuzda tutmamalısınız. Çoğu modern sağlayıcı zaten bunu engeller.
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Ödeme Formu</title>
</head>
<body>
<form action="charge.php" method="post" id="payment-form">
<label for="card-element">Kredi Kartı</label>
<div id="card-element"></div>
<button type="submit">Ödeme Yap</button>
</form>
<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe('your-public-key-here');
var elements = stripe.elements();
var card = elements.create('card');
card.mount('#card-element');
</script>
</body>
</html><?php
require 'vendor/autoload.php';
\Stripe\Stripe::setApiKey('your-secret-key-here');
$token = $_POST['stripeToken'];
try {
$charge = \Stripe\Charge::create([
'amount' => 5000,
'currency' => 'usd',
'description' => 'Örnek Ödeme',
'source' => $token,
]);
echo 'Ödeme başarılı!';
} catch (\Stripe\Exception\CardException $e) {
echo 'Ödeme başarısız: ' . $e->getMessage();
}
?>[UrfaWebTasarım] olarak ödeme entegrasyonunu sadece “çalıştırıp bırakmıyoruz”. İşin satışa ve sorunsuz operasyona dönüşmesi için uçtan uca kuruyoruz:
PHP tabanlı e-ticaret / ödeme sayfası geliştirme
iyzico / PayTR / Param / banka sanal POS entegrasyonları
3D Secure + taksit seçenekleri
Webhook doğrulama ve güvenlik katmanları
Yönetim panelinde sipariş/ödeme takibi
İade/iptal altyapısı (refund API)
Performans ve SEO uyumlu altyapı
Sonuç:Daha güvenli ödeme, daha az hata, daha yüksek dönüşüm.
Projenin tipine göre değişir:
Basit ödeme alma:kısa sürede
3D + taksit + iade + panel:daha kapsamlı
İhtiyaca göre değişir:
Komisyon oranları
Taksit seçenekleri
Ertesi gün ödeme
Teknik dokümantasyon kalitesi
İşletmenize göre en doğru seçimi birlikte belirliyoruz.
Urfa’da online satış yapmak isteyen işletmeler için ödeme entegrasyonu, işin kalbidir. PHP ile doğru kurulan bir altyapı sayesinde:
müşteriniz güvenle öder,
sipariş süreci otomatik işler,
siz de satışa odaklanırsınız.
[UrfaWebTasarım] ile iletişime geçin
Urfa’da işletmenize özel PHP ödeme entegrasyonu çözümleri sunalım.
Urfa Web Tasarım kalitesi ile birlikte ihtiyacınız olan performanslı hosting web tasarım ve sunucu hizmetine sahip olacaksınız. Üst düzey güvenlik teknolojimiz ile bir adım öndeyiz!

