alış veriş sitesi yapmanın pek bir zorluğu yok teknik açıdan. tek zor kısmı ürün ve kategoriler, ürün çeşitliliği arttıkça ürüne ait bilgilerde de değişiklik oluyor veri tabanını buna uydurmak ve aramayı buna uygun hale getirmek en zor kısmı, ödeme ise basiti.
ödeme kısmı şöyle oluyor, hangi banka ile çalışacak iseniz sitenizi hazırladıktan sonra o bankaya başvuru yapıyorsunuz, başvurunuz kabul edilir ise size web sitenizde bulunması gereken şeylerin bir listesini gönderiyorlar (ssl sertifikası, browserlar ssl hatası vermeyecek vs. gibi bir takım maddeler içeriyor, 10/15 maddelik bir şey, bankanın sitesinde de bulabilirsiniz bu bilgileri) buna göre sitenizi kontrol ediyorsunuz her şey ok ise bunu ip adresiniz ile bankaya bildiriyorsunuz birde onlar kontrol ediyorlar her şey ok ise sizi white liste'e alıyorlar bu noktadan sonra bankanın sunduğu api'yi kullanabilir hale geliyorsunuz.
Bankalar hali hazırda çokça kullanılan diller için (C#, php vs.) hazırlanmış kütüphaneler içeren bir zip veriyor zaten, bu zip'i açıp hangi dili kullanıyor iseniz o dile ait kütüphaneyi projenize ekliyorsunuz, ödeme sayfasında kullanıcıdan aldığınız kart bilgilerini bu kütüphaneye veriyorsunuz (örnek bir parça aşağıda) ve ilgili çağrıyı yapıyorsunuz, size ok yada hata mesajı geliyor (true, false) buna göre ya teşekkürler siparişiniz en geç X gün içinde elinizde olacak diyen bir sayfa gösteriyorsun yada kart bilgileriniz hatalı diyorsun.
Siteyi tamamlarken birde size test kartları veriliyor bu kartlar size ya her seferinde hata yada her seferinde ok döndürüyor böylece sitenizi test ederken gerçek kredi kartınızı kullanmak zorunda kalmıyorsunuz. Bu kadar basit bir şey aslında. tabii işin içine taksitlendirme vs. girdikçe işin rengi değişiyor ama olsun onunda dökümantasyonu falan oluyor sonuçta, korkulacak bişi yok kısaca. sadece kart bilgilerini veri tabanına kaydetmeyin o kadar.
<?php
include "HedeBankasi.php";
$payment = new HedeBankasiPayment();
$payment->addCC($_POST['cc']); // kart no
$payment->addCCV2($_POST['ccv2']); // ccv2 numarası
$payment->addExpire($_POST['expire_at']); // son kullanma tarihi
$payment->addPayment(100); // kuruş cinsinden tutar
$res = $payment->payment(); // bankaya git
if($res) {
// parayı aldın aferim, db'ye kaydet siparişi adresi vs. yi
// mail at hem adama hem sitenin sahibine
// teşekkür sayfasına yönlendir adamı
}
// hatalı bilgiler tekrar dene
0