Merhaba, bu yazımda internette kaynağını bulmakta çok zorlanılan bir konuyu ele almak istedim. Konunun adı : PHP ile İyzico Entegresi
Bildiğiniz gibi, Her bankanın kendine ait hemen hemen bir sanal pos apisi bulunmaktadır. Ancak, kodlayacağımız web sitesinde birden çok bankanın posunu kullanmamız gerekebilir. Bu durumda her posun yazımı aşırızı zahmetli ve zaman alan bir iş olacağından pekde mantıklı değil. İşte bu durumun önüne geçebilmek için günümüzde İyzico, PayTR, Payu gibi bankalaların sanal poslarını bir arada toplayan ödeme aracısı firmalar ortaya çıktı.
Bugün bu yazımda anlatacağım ödeme aracısı firmalardan bir tanesi olan İyzico’nun PHP web sitesine nasıl entege edileceğidir.
İyzico Nedir ?
Kendi web sitelerindeki yazıdan anlaşılacağı üzere, İyzico 2010 yılında ortaya atılan bir fikir sonucunda şekillenen bir ödeme aracısı firmadır. 2012 yılından itibaren öncelikle E-Ticaret sitelerine daha sonrada her türlü web sitesine hizmet vermekte olan, kolay ve güvenli bir ödeme yönteminin adıdır.
İyzico Ödeme Yöntemi Nedir?
İyzico, kullanıcılarına hızlı, kolay, güvenli ve uygun fiyatlı ödeme işlemleri sunan bir online ödeme sistemidir. Barbaros Özbuğutu ve Tahsin Isın tarafından 2013 yılında kurulan İyzico, Türkiye’nin önde gelen e-ticaret siteleri ve mobil uygulamaları tarafından tercih edilmektedir. İyzico, müşterilerine çeşitli ödeme yöntemleri sunarak kullanıcıların tercihine bağlı olarak kredi kartı ödemeleri, banka kartı ödemeleri veya banka transferi gibi seçenekler sunar. Böylece, daha fazla kişi İyzico ödeme yöntemini tercih edebilir.
İyzico Güvenli mi ?
Bugün Türkiye’de Developer’ların en fazla kullandığı ödeme apisi olduğuna göre bu sorunun cevabını evet olarak verebilirim.
İyzico, kullanıcıların ödemelerinin güvence altına alınması için çeşitli güvenlik önlemleri alır. İyzico, sektördeki diğer ödeme sağlayıcıları gibi PCI DSS sertifikasına sahip bir ödeme hizmet sağlayıcısıdır. Ayrıca, ödemelerde SSL gibi protokolleri kullanarak kullanıcıların kart bilgilerinin güvenliği sağlanır. İyzico, kullanıcıların kart bilgilerini saklama yazılımı kullanmaz, böylece kullanıcının kart bilgileri her zaman korunur.
PHP ile iyzico Entegresi
Konuyu fazla uzatmadan PHP ile iyzico entegresi kısmına geçmek istiyorum.
Öncelikle İyziconun 2 tür entegrasyon durumu bulunmaktadır.
- Basit Ödeme Formu
- Pazaryeri Apisi
Bu yazımızda anlatacağımız entegrasyon türü PHP ile İyzico Basit Ödeme Formu Entegrasyonu
Öncelikle şunu bilmelisiniz. Web sitenizde üyeler birbirleri ile alışverişte bulunuyorlarsa (Gittigidiyor, N11 gibi) bu ödeme türü size göre değil demektir. Sizin entegrasyon yapacağınız tür Pazaryeri apisi olmalıdır. Bu api sadece sizin üyelere birşeyler satma durumunuzda geçerli olan bir türdür.
PHP ile İyzico Basit Ödeme Formu Entegrasyonu
Entegrasyona başlarken Bu Adresten İyziconun Api kodlarını indirmeniz gerekiyor. Dosyaları olduğu gibi FTP’de ana dizine atmanız gerekmektedir.
Ödeme Formunu Başlatmak İçin Gerekli Olan Kodlar
Benim tercih ettiğim yöntem veritabanında gecici bir sipariş tablosu oluşturmak. Ödeme formu sayfasında bu tabloya siparişi kaydedip, Ödeme başarılı ise kaydedilen gecici siparişi normal siparişler tablosuna almak.
Gecici siparişler tablosuna kayıt için örnek kodlar ;
<?php $siparisID = $db->veriEkleSayiAl("gecici_siparisler", array("NULL","?","?"), array($_SESSION["KullaniciID"],$_POST["SiparisTUTARI"])); ?>
Not : Kendi Yazdığım PDO Veritabanı Classını Kullandığım İçin Buradaki Kodlar Size Karışık Gelebilir. Yapılan İşlem Veritabanında Gecici Siparişlere Bir Kayıt Ekleyip Eklenen Kaydın ID’sini almaktan ibarettir.
Ödeme Formunu Getirme
<?php include('iyzico/samples/config.php'); # create request class $request = new \Iyzipay\Request\CreateCheckoutFormInitializeRequest(); $request->setLocale(\Iyzipay\Model\Locale::TR); $request->setConversationId($siparisID); // Her işlemde benzersiz bir sayı gitmelidir. $request->setPrice($_POST[SiparisTUTARI]); // Siparişlerin Toplam Fiyatı $request->setPaidPrice($_POST[SiparisTUTARI]); // Siparişlerin Toplam Fiyatı $request->setCurrency(\Iyzipay\Model\Currency::TL); $request->setBasketId(rand(0,9999)); $request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT); $request->setCallbackUrl("$siteURL/odemesonucu.php?geici=$siparisID"); // Ödeme sonucunun alınacağı sayfaya gecici sipariş ID'yi yolluyorum $request->setEnabledInstallments(array(2, 3, 6, 9)); // Taksit Seçenekleri $buyer = new \Iyzipay\Model\Buyer(); $buyer->setId($_SESSION["KullaniciID"]); // Alıcı Üyenin ID'si $buyer->setName('Ali'); // Alıcı Üyenin Adı (Kendi Verilerinizle Değişin) $buyer->setSurname('Örnek'); // Alıcı Üyenin Soyadı (Kendi Verilerinizle Değişin) $buyer->setGsmNumber('0531111111'); // Alıcı Üyenin GSM Numarası(Kendi Verilerinizle Değişin) $buyer->setEmail('Ornekmaik@gmail.com'); // Alıcı Üyenin Maili (Kendi Verilerinizle Değişin) $buyer->setIdentityNumber('111111111111'); // Alıcı Üyenin TC'si (Kendi Verilerinizle Değişin) $buyer->setLastLoginDate(date("Y-m-d H:i:s")); $buyer->setRegistrationDate(date("Y-m-d H:i:s")); $buyer->setRegistrationAddress($db->VeriOkuTek("il","IL_ADI","IL_ID",$db->bilgial[0]->UyeSEHIR)." ".$db->VeriOkuTek("ilce","ILCE_ADI","ILCE_ID",$db->bilgial[0]->UyeILCE)." ".$db->VeriOkuTek("mahalle_koy","MAHALLE_ADI","MAH_ID",$db->bilgial[0]->UyeMAHALLE)); $shippingAddress->setZipCode("34742"); $request->setShippingAddress($shippingAddress); $billingAddress = new \Iyzipay\Model\Address(); $billingAddress->setContactName('Ali Örnek'); // Alıcı Üyenin Adı ve Soyadı (Kendi Verilerinizle Değişin) $billingAddress->setCity('İstanbul') // Alıcı Üyenin Şehri (Kendi Verilerinizle Değişin) $billingAddress->setCountry("Turkey"); $billingAddress->setAddress('Örnek Adres'); // Alıcı Üyenin Adresi(Kendi Verilerinizle Değişin) $billingAddress->setZipCode("34742"); $request->setBillingAddress($billingAddress); $basketItems = array(); $firstBasketItem = new \Iyzipay\Model\BasketItem(); $firstBasketItem->setId("BI101"); // Alınan Ürünün Numarası (Kendi Verilerinizle Değişin) $firstBasketItem->setName("100lük parfüm"); // Alınan Ürünün Adı(Kendi Verilerinizle Değişin) $firstBasketItem->setCategory1("Parfüm"); // Alınan Ürünün Kategorisi (Kendi Verilerinizle Değişin) $firstBasketItem->setCategory2("Deodorant"); // Alınan Ürünün Alt Kategorisi (Kendi Verilerinizle Değişin) $firstBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL); $firstBasketItem->setPrice($_POST["SiparisTUTARI"]); // Alınan Ürünün Fiyatı (Kendi Verilerinizle Değişin) $basketItems[0] = $firstBasketItem; $request->setBasketItems($basketItems); # make request $checkoutFormInitialize = \Iyzipay\Model\CheckoutFormInitialize::create($request, Config::options()); # print result echo $checkoutFormInitialize->getcheckoutFormContent(); //print_r($checkoutFormInitialize);
Yukarıdaki kodlarda zaten herşey açık. Ancak burada dikkat edilmesi gereken nokta bu kodlar tek ürün satışı için. Eğer birden fazla ürün satacaksanız yani sepet mantığı var ise. Basketitems yazan kısımları döngüye sokmalısınız. Ayrıca bu ürünlerin fiyatının toplamı en başta yazdığımız toıplam fiyata eşit olmalıdır.
Ödeme Onaylama Sayfası
Eğer kullanıcılar ödemeyi başarı ile yaptı ise. setCallbackUrl ile tanımladığımız sayfaya gitmemiz gerekiyor. O sayfanın kodlarıda şu şekilde olmalıdır;
include('iyzico/samples/config.php'); $request = new \Iyzipay\Request\RetrieveCheckoutFormRequest(); $request->setLocale(\Iyzipay\Model\Locale::TR); $request->setConversationId("123456789"); $request->setToken($_POST['token']); # make request $checkoutForm = \Iyzipay\Model\CheckoutForm::retrieve($request, Config::options()); # print result if($checkoutForm->getPaymentStatus() == "SUCCESS") { $db->VeriOkuCoklu("gecicisiparisler",array("SiparisID"),array($_GET[gecici])); //Gecici Siparişlerdeki Kaydımı Okudum. Burada Ben Siparişler Tablosuna Gecici Siparişlerdeki Kaydı Ekliyorum Siz Başka işlemlerde yapabilirsiniz. $db->Basarili("Ödemeniz başarı ile alınmıştır. Siparişlerinizi profilinizden görüntüleyebilirsiniz"); }else { $db->Basarisiz("Bir sorun oluştu. Lütfen daha sonra tekrar deneyiniz"); }
Bu yazıda anlatılan iyzico basit ödeme formu entegrasyonu hizmetini satın almak için WhatsApp veya telefon yolu ile bana ulaşabilirsiniz.
İyziconun Avantajları
İyzico’nun birçok avantajı bulunmaktadır. Öncelikle hızlı ödeme işlemi, kullanıcıların ödeme yaparken zaman kaybetmeden işlemlerini tamamlayabilmesine olanak sağlamaktadır. Kolay entegrasyon özelliği sayesinde, İyzico, birçok platformda kullanılabilmekte ve entegrasyon işlemleri oldukça kolay ve hızlı bir şekilde gerçekleştirilebilmektedir.
Uygun fiyatları ile de dikkat çeken İyzico, rakip ödeme sistemlerine göre daha ekonomik bir seçenek sunarak kullanıcıların maliyetlerini düşürmelerine yardımcı olmaktadır. Ayrıca, İyzico ile ödeme yaptığınızda ödeme işleminizin onaylanması hızlı ve sorunsuz bir şekilde gerçekleştirilmektedir.
İyzico’nun avantajları arasında ayrıca kullanıcı dostu arayüzü, kolay yönetim paneli ve geniş ödeme seçenekleri de yer almaktadır. Bu sayede, kullanıcılar İyzico ile ödeme yapmanın rahatlığını ve güvenliğini deneyimlerken işletmeler de müşteri memnuniyetlerini artırarak kazançlarını yükseltebilmektedir.
İyzico Hesabı Açma, Ödeme Yapma Adımları ve Ödeme Onay Süreci
İyzico Hesabı Açma Adımları
İyzico hesabı açmak oldukça basit bir işlemdir. İşte adımlar:
- Öncelikle İyzico web sitesine giriş yaparak “Şimdi Üye Ol” veya “Giriş Yap” seçeneklerinden “Şimdi Üye Ol” seçeneğine tıklayın.
- Karşınıza çıkan formu doldurun. Formda adınız, soyadınız, e-postanız, şifreniz gibi kişisel bilgileriniz yer alacaktır.
- Formu doldurduktan sonra “Kayıt Ol” butonuna tıklayarak hesabınızı oluşturabilirsiniz.
İyzico ile Ödeme Yapma Adımları
İyzico ile ödeme yapmak oldukça kolay bir işlemdir. İşte adımlar:
- İlk olarak alışveriş yapacağınız site üzerinden sepetinize ürünleri ekleyin ve ödeme işlemleri sayfasına geçin.
- Ödeme işlemleri sayfasında İyzico ödeme yöntemini seçin.
- Karşınıza çıkan formda, fatura adresi ve kredi kartı bilgilerinizi girin.
- Formu doldurduktan sonra “Ödeme Yap” butonuna tıklayarak ödeme işlemini tamamlayabilirsiniz.
İyzico’nun Ödeme Onay Süreci
İyzico ödeme onay süreci oldukça hızlı bir şekilde gerçekleştirilir. İyzico, kullanıcının ödeme bilgilerini doğrulamak için çeşitli güvenlik önlemleri almaktadır. İyzico ödeme onay süreci aşağıdaki adımlardan oluşur:
- Kullanıcı, ödeme formunu doldurarak ödeme işlemini tamamlar.
- İyzico, kullanıcının kart bilgilerini doğrulamak için bankaya bağlanır ve kartın geçerliliğini kontrol eder.
- Kartın doğru ve geçerli olduğu tespit edildikten sonra, ödeme işlemi onaylanır ve kullanıcıya ödeme başarılı mesajı gösterilir.
- Ödeme işleminin başarısız olması durumunda, kullanıcıya hata mesajı gösterilir ve ödeme işlemi gerçekleştirilmez.
İyzico Api
Yukarıda anlatılan entegrasyon biçimi iyzico basit ödeme formu entegrasyonudur. Fakat İyziconun entegrasyon biçimleri arasında iyzico api de bulunmaktadır. Bu api sayesinde entegrasyon yapılacak projede İyziconun ödeme formu iframe olarak gelmez. İyzico api kullanarak sizin kendi ödeme formunuzu ve ödeme entegrasyonunuzu yapmanız gerekir.
İyzico PHP Api
İyziconun çeşitli programlama dilleri için geliştirilen SDK ismi ile isimlendirdiğimiz kütüphaneleri bulunmaktadır. Bu Kütüphanelerden bir tanesi de İyzico PHP Api SDK kütüphanesidir.
Sonuç
İyzico, kullanıcılarına güvenli, hızlı ve kolay ödeme işlemleri yapma imkanı sunan bir ödeme sistemidir. İyzico hesabı açmak oldukça basit bir işlemdir ve üye olmak için İyzico web sitesine giriş yapmak yeterlidir. Ödeme yapmak için ise, alışveriş yaptığınız sitede İyzico ödeme seçeneğini seçip, formu doldurarak ödeme işlemini tamamlayabilirsiniz.
İyzico ödeme onay süreci oldukça hızlı bir şekilde gerçekleştirilir. İyzico, kullanıcının kart bilgilerini doğrulamak için çeşitli güvenlik önlemleri alır ve ödeme işlemi başarılı olursa kullanıcıya hemen ödeme başarılı mesajı gösterilir. İyzico ile ödeme yapmak, güvenli bir ödeme işlemi gerçekleştirmek isteyen kullanıcılar için ideal bir seçenektir.
İyzico pazaryeri entegrasyonu hizmetini almak için benimle WhatsApp veya telefon yolu ile iletişime geçebilirsiniz
WhatsApp iletişim için tıkla
Telefonla iletişim için: 0531 324 16 16
Hocam merhaba basket item kısmını döngüye nasıl sokabiliriz örnek verebilir misiniz ?
Merhaba Talha,
Yazın bizi çok mutlu etti. iyzico entegrasyonu ile ilgili deneyimlerini ve feedbacklerini dinlemeyi çok isteriz. uygun olduğun bir gün seni ofisimizde ağırlamak istiyoruz. Eğer bizi kırmazsan iletişim bilgilerimden bana ulaşabilirsen çok memnun olurum.
sevgiler,
Demet UYGUN
http://www.iyzico.com
Merhaba mail adresiniz üzerinden size ulaştım. Davetiniz için çok teşekkür ederim
Merhaba demet hanım öncelikle işine sağdık olan bir yazılımcıyı ofisinize davet ettiğiniz için teşekkür ederiz böyle bilen kişileri işe alsanız da iyzico sanal post alan kişiler entagrasayon yapamadığı zaman kurulumlarını yaptırsanız olmaz mı pos alıyorum 15 gün entagrasayon yapıcaz diye uğraşıyoruz ekiblerinizin verdiği cevap kısa net link atarlar inceleyin diyorsunuz bence yazdığıma kulan verin derim
Hocam teşekkürler..Kendi ödeme formumuzun entegrasyonu hakkında bir yazınız olacak mı?..
Bu konuda bir makale yayınlayacağım
iyziconun secret key ve api key ni nereye yazacaz peki kod kısmında goremedim
Samples/config.php dosyasına yazmanız gerekmektedir