Iyzico Ödeme Sistemleri 2016 (Yeni Api)

iyzico-logo-460x231

Iyzco yeni alt yapısında mantık aynı sadece değişen bazı paremetreler var.Ben hem laravel için hemde makarna için kullandım fakat bu yazımda makarna için izlediğim yolları yazacağım.Öncelikle burdan https://github.com/iyzico/iyzipay-php yeni alt yapıyı temin ediyoruz.

Örnek bin sorgusu ;

https://github.com/iyzico/iyzipay-php/blob/develop/samples/BinNumberSample.php


include('../iyzipay-php-develop/IyzipayBootstrap.php'); //dosyayı çağırıyoruz

    $options = new \Iyzipay\Options();
    $options->setApiKey(""); // api key
    $options->setSecretKey(""); //secret key
    $options->setBaseUrl("https://api.iyzipay.com");
    $request = new \Iyzipay\Request\RetrieveBinNumberRequest();
    $request->setLocale(\Iyzipay\Model\Locale::TR);
    $request->setConversationId("123456");
    $request->setBinNumber(); // bin number

     
     $binNumber = \Iyzipay\Model\BinNumber::retrieve($request, $options);
    //print_r($resultJson); size kart tipi, bank vs bilgiler veriyor
     $detaylar = $binNumber->getRawResult();
     $resultJson = json_decode($detaylar,true);
     //print_r($resultJson); // çıkan sonuçlara bakabilirsiniz
     $status  =  $resultJson['status'];

Taksit Sorgusunda ise kullandığım fonksiyon;

https://github.com/iyzico/iyzipay-php/blob/develop/samples/InstallmentSample.php


        $request = new \Iyzipay\Request\RetrieveInstallmentInfoRequest();
        $request->setLocale(\Iyzipay\Model\Locale::TR);
        $request->setConversationId("123456789");
        $request->setBinNumber(''); //bin
        $request->setPrice($''); // fiyat
        $installmentInfo = \Iyzipay\Model\InstallmentInfo::retrieve($request,$options);
        print_r($installmentInfo); // taksit çıktıları 

Ödeme işlemlerinde ise 3dde ise should_initialize_threeds_payment_with_physical_and_virtual_item_for_standard_merchant(); fonksiyonu kullanmamı söylediler.

https://github.com/iyzico/iyzipay-php/blob/develop/samples/ThreedsSample.php


   # create request class
        $request = new \Iyzipay\Request\CreatePaymentRequest();
        $request->setLocale(\Iyzipay\Model\Locale::TR);
        $request->setConversationId("123456789");
        $request->setPrice("0.1");
        $request->setPaidPrice("0.1");
        $request->setCurrency(\Iyzipay\Model\Currency::TL);
        $request->setInstallment(1);
        $request->setBasketId("B67832");
        $request->setPaymentChannel(\Iyzipay\Model\PaymentChannel::WEB);
        $request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);
        $request->setCallbackUrl("3dsonuc.php");

        $paymentCard = new \Iyzipay\Model\PaymentCard();
        $paymentCard->setCardHolderName("John Doe");
        $paymentCard->setCardNumber(""); // kart no
        $paymentCard->setExpireMonth(""); // ay
        $paymentCard->setExpireYear(""); // yıl
        $paymentCard->setCvc(""); // guvenlik no
        $paymentCard->setRegisterCard(0);
        $request->setPaymentCard($paymentCard);

        $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.1");
        $basketItems[0] = $firstBasketItem;

       
       $request->setBasketItems($basketItems);
        # make request
        $threedsInitialize = \Iyzipay\Model\ThreedsInitialize::create($request, Sample::options());

        # print result
        print_r($threedsInitialize); 

Burdan sonra yönlendirme sayfasına gidiyor burda ise should_auth_threeds(); fonksiyonunu kullanmamı söylediler 3 4 tane post değeri geliyor.


$options = new \Iyzipay\Options();
$options->setApiKey("");  // api
$options->setSecretKey(""); //secret
$options->setBaseUrl("https://api.iyzipay.com");
# create request class
$request = new \Iyzipay\Request\CreateThreedsPaymentRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId($_POST["conversationId"]);
$request->setPaymentId($_POST["paymentId"]);
$request->setConversationData($_POST["conversationData"]);

# make request
$threedsPayment = \Iyzipay\Model\ThreedsPayment::create($request,$options);
		
# print result
			
$detaylar = $threedsPayment->getRawResult();
$resultJson = json_decode($detaylar,true); // çıkan sonuçlara göre işlemler

Hemen hemen mantık aynı gibi anlatım biraz kötü olmuş olabilir kusura bakmayın.Normal ödeme yönetmi basit olduğu için yazma gereği duymadım.Kafası karışanlara yardım edebilirim kendi teknik ekibi saolsun yardımcı oluyorlar

Kaynak

1 Yorum

  1. Merhaba,

    Öncelikle güzel makaleniz için teşekkür ederim. Ben 2 haftadır laravel 5.2 ve 5.3 sürümlerinde iyzico entegrasyonu ile uğraşıyorum ve bir çözüm elde edemedim. İyzico destek kısmıyla 1 haftadır mesajlaşıyoruz ama çözüm üretmekten daha çok sürekli aynı sözleri söyleyip zamanımı harcıyorlar. Laravel ile başarılı sonuç elde ettiyseniz kullandığınız yöntemi paylaşabilir misiniz?

    Tekrardan teşekkürler.

    Yanıt
  2. iyi günler 1 haftadır bende iyzico 3d entegrasyon ile uğraşıyorum. arkadaşın dediği gibi ayni şeyleri ısıtıp ısıtıp destek kısmından yolluyorlar. sorunum şu ki ben ödeme formunu ilk yollarken print_r ($threedsInitialize); demezsem sms ekranı gelmiyor. ama bunu yazarsamda array çıktıları ekranda görünüyor. array çıktılarını göstermeden formu nasıl 3ds olarak başlatıp sonucu alabilirim. yardımcı olur musunuz?

    Yanıt
  3. Merhabalar;

    İyzico ödeme sistemini web siteme entegrasyon için çalışıyorum. Pazaryeri modeliye kullanmak durumundayım. Ancak mantığı tam anlamıyla çözmüş değilim. Destek ekibinin yoğunluğu olsa gerek iyzico dan da pek işime yarayacak bilgiler edinemedim. Anlatımda kullandığınız dil benim için biraz daha yakın olduğundan. Sizden bu konu hakkında öz bir kaç bilgi sormak istiyorum. Şayet entegrasyonum hakkında yardımcı olursanız sevinirim. Saygılarımla.

    Yanıt

Yorum Bırak.