İyzico Ödeme Entegrasyonu [PHP]

kategori:

İyzico ile ödeme sistemini entegre etmek için öncelikle PHP sürümünüz 5.3 yada üzeri olmalıdır. iyzico resmi api desteğini isterseniz composer ile yükleyebilir veya github üzerinden download edebilirsiniz.

composer require iyzico/iyzipay-php

Komutunu kullanarak composer aracılığıyla indirebilirsiniz. Daha sonra yapmanız gereken, dosyaları sisteminize include etmek olmalıdır. Bunu ise composer sonrası sistemin yarattığı autload.php dosyasıdır. Bunu çağırmak için;

require_once('vendor/autoload.php');

kodunu sayfanızın başına ekliyoruz.
Şimdi sıra geldi ödeme terminalini sisteminize uyarlı hale getirmeye;

$options = new \Iyzipay\Options();
$options->setApiKey("api key");
$options->setSecretKey("secret key");
$options->setBaseUrl("https://sandbox-api.iyzipay.com");
$request = new \Iyzipay\Request\CreatePaymentRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPrice("1");
$request->setPaidPrice("1.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);
$paymentCard = new \Iyzipay\Model\PaymentCard();
$paymentCard->setCardHolderName("John Doe");
$paymentCard->setCardNumber("5528790000000008");
$paymentCard->setExpireMonth("12");
$paymentCard->setExpireYear("2030");
$paymentCard->setCvc("123");
$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.3");
$firstBasketItem->setSubMerchantKey("sub merchant key");
$firstBasketItem->setSubMerchantPrice("0.27");
$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");
$secondBasketItem->setSubMerchantKey("sub merchant key");
$secondBasketItem->setSubMerchantPrice("0.42");
$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");
$thirdBasketItem->setSubMerchantKey("sub merchant key");
$thirdBasketItem->setSubMerchantPrice("0.18");
$basketItems[2] = $thirdBasketItem;
$request->setBasketItems($basketItems);
$payment = \Iyzipay\Model\Payment::create($request, $options);

Bu örnekte görüldüğü gibi kodları sisteminize uygun hale getirebilirsiniz.

Github: https://github.com/bercanozcan/iyzipay-php


Yorumlar

“İyzico Ödeme Entegrasyonu [PHP]” için 8 yanıt

  1. kendi sitemizdeki ve sepet verilerini yukarıdaki kodlara submit ediyoruz değil mi ?

    1. bercanozcan avatarı
      bercanozcan

      Evet, zorunlu alanlara dikkat ederseniz sorun çıkmayacaktır.

  2. Merhaba, Ben shopify üzerinden açtığım websitem içine entegre etmek istiyorum. Ancak APi Key ve Secret Key’e ayarlar menüsünden ulaşamıyorum. Bir fikriniz varmı acaba?

    1. bercanozcan avatarı
      bercanozcan

      Iyzico onayladıysa görebilirsiniz.

  3. Php alt yapısındaki ipboard forum için bir entegrasyon adına can çekisiyorum. Herhangi bir doküman yok. Buradaki ornek veriler de salt değerler, değişkenleri nasıl otomatik çekmesi için tanımlayabiliriz bilgim de yok. Konuyla alakalı ne yapabilirim, nasıl bir yol izlemeliyim dersin?

    1. bercanozcan avatarı
      bercanozcan

      Otomatik derken, biraz daha detay verebilir misiniz?

  4. Murat ömürlü avatarı
    Murat ömürlü

    Merhaba, bu işlemlerden dönen sonuçları ne şekilde alabiliriz? bildiğim kadarıyla geriye bir array dönüyor ama ben bu arrayın içinde ki değerleri alıp ekrana yazamıyorum. Iyzipay\Model\SubMerchant Object şeklinde dönen array içinde ki [conversationId:Iyzipay\IyzipayResource:private] değerini alıp kontrol etmem egerekiyor ama bunu başaramadım.

    1. bercanozcan avatarı
      bercanozcan

      success alanını kontrol ettirirseniz sorun cozulecektır. json_decode(); fonksıyonunu kullanırken ikinci parametreye TRUE değerini göndermeyi unutmayın.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir