"Enter"a basıp içeriğe geçin

PHP ile Iyzico Ortak Ödeme Sayfası Entegrasyonu

Iyzico denilince direkmen akıllara sanal pos gelmekte. Iyzico’nun kendi dökümanı bulunması ile birlikte sade kullanımdan bahsedilmiş ve ortak ödeme sayfası hakkında detaylı bir örnek bulunmamakta. Bu işe yeni girişen ve Iyzico apisi nasıl kullanılır bilmeyenler için detaylı bir anlatım yapacağım. Kullanımı aslında çok kolay ve basit. İlk olarak Iyzico’nun GitHub hesabından api’nin son versiyonunu indiriyoruz. Gerekli kurulumları yaptıktan sonra entegrasyona geçebiliriz.

  1. SandBox (Test) Hesabı Oluşturmak
    Iyzico servislerini test edebilmek adına sandbox ortamına kayıt olmamız gerekiyor. Bu adresten kaydınızı gerçekleştirip giriş işlemi yapın. Ayarlar kısmından api ve secret keyleri alalım.
  2. Gerekli Ayarların Yapılması
    Iyziconun GitHub hesabındaki apiden src adlı dosyayı aldıktan sonra yeni bir dosya ekleyip aşağıdaki kodu yüklemeniz gerekmekte. Dosya yapımız şu şekilde olmalı;
    • src
    • IyzipayBootstrap.php
    • buyer.php (Bu dosya size gelmez yeni bir buyer.php adlı dosya açıp aşağıdaki kodu yapıştırmanız gerekmekte.
<?php
require_once('IyzipayBootstrap.php');

IyzipayBootstrap::init();

class Config
{
    public static function options()
    {
        $options = new \Iyzipay\Options();
        $options->setApiKey("API-KEY");
        $options->setSecretKey("SECRET-KEY");
        $options->setBaseUrl("https://sandbox-api.iyzipay.com");
        return $options;
    }
}

$request = new \Iyzipay\Request\CreateCheckoutFormInitializeRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPrice("1");
$request->setPaidPrice("1.2");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$request->setBasketId("B67832");
$request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);
$request->setCallbackUrl("https://www.siteadi.com/sonuc");
$request->setEnabledInstallments(array(2, 3, 6, 9));

$buyer = new \Iyzipay\Model\Buyer();
$buyer->setId("BY789");
$buyer->setName("John");
$buyer->setSurname("Doe");
$buyer->setGsmNumber("+905350000000");
$buyer->setEmail("email@email.com");
$buyer->setIdentityNumber("74300864791");
$buyer->setLastLoginDate("2015-10-05 12:43:35");
$buyer->setRegistrationDate("2013-04-21 15:12:09");
$buyer->setRegistrationAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$buyer->setIp("85.34.78.112");
$buyer->setCity("Istanbul");
$buyer->setCountry("Turkey");
$buyer->setZipCode("34732");

$request->setBuyer($buyer);
$shippingAddress = new \Iyzipay\Model\Address();
$shippingAddress->setContactName("Jane Doe");
$shippingAddress->setCity("Istanbul");
$shippingAddress->setCountry("Turkey");
$shippingAddress->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$shippingAddress->setZipCode("34742");
$request->setShippingAddress($shippingAddress);

$billingAddress = new \Iyzipay\Model\Address();
$billingAddress->setContactName("Jane Doe");
$billingAddress->setCity("Istanbul");
$billingAddress->setCountry("Turkey");
$billingAddress->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$billingAddress->setZipCode("34742");
$request->setBillingAddress($billingAddress);

$basketItems = array();
$firstBasketItem = new \Iyzipay\Model\BasketItem();
$firstBasketItem->setId("BI101");
$firstBasketItem->setName("Binocular");
$firstBasketItem->setCategory1("Collectibles");
$firstBasketItem->setCategory2("Accessories");
$firstBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$firstBasketItem->setPrice("0.3");
$basketItems[0] = $firstBasketItem;

$secondBasketItem = new \Iyzipay\Model\BasketItem();
$secondBasketItem->setId("BI102");
$secondBasketItem->setName("Game code");
$secondBasketItem->setCategory1("Game");
$secondBasketItem->setCategory2("Online Game Items");
$secondBasketItem->setItemType(\Iyzipay\Model\BasketItemType::VIRTUAL);
$secondBasketItem->setPrice("0.5");

$basketItems[1] = $secondBasketItem;
$thirdBasketItem = new \Iyzipay\Model\BasketItem();
$thirdBasketItem->setId("BI103");
$thirdBasketItem->setName("Usb");
$thirdBasketItem->setCategory1("Electronics");
$thirdBasketItem->setCategory2("Usb / Cable");
$thirdBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$thirdBasketItem->setPrice("0.2");
$basketItems[2] = $thirdBasketItem;
$request->setBasketItems($basketItems);

$checkoutFormInitialize = \Iyzipay\Model\CheckoutFormInitialize::create($request, Config::options());
$a = $checkoutFormInitialize->getPaymentPageUrl();
header("Location: $a");

Not: Kod bloğunu açıklayacak olursam, ilk olarak test ortamında ki api key’i ve secret key’i ilgili yere yapıştıracağız. Daha sonrasında kullanıcıdan gelen bilgileri alıp, sepet içeriğini döndürerek ekleme işlemini yapacağız. Asıl işimiz $a adlı değişkende bitiyor. Bu değişken ortak ödeme sayfası için benzersiz bir url oluşturmakta daha sonrasında header ile yönlendirme işlemi yapıyoruz. Kod bloğu içerisinde $request->setCallbackUrl(“https://www.siteadi.com/sonuc”); kısmı ödeme yaptıktan sonra nereye yönlendiricinizi belirtir. Sipariş no şeklinde parametre belirtip entegrasyon işlemini kolay bir şekilde bitirebilirsiniz. Sonuç sayfasının kullanımını şu yazımdan öğrenebilirsiniz. Gerekli tüm kodlar bu şekilde. Projenin kaynak kodlarını zip şeklinde indirebilirsiniz.

Kullanımına gelecek olursam buyer.php dosyasına yönlendirdiğimizde otomatik olarak sizi yönlendirecektir.

Projenin Kaynak Kodları: İndir

Okuyucu Puanı
[Toplam: 3 Ortalama: 5]

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir