iyzico ile öde - başlatma

Aşağıda belirtilen istek sonucu alacağınız payWithIyzicoPageUrl değeri, müşterilerinizin iyzico ile ödeme yapabilmesi için yönlendirileceği eşsiz bir sayfadır. Müşteriniz ödeme sürecini tamamladıktan sonra istek sırasında belirttiğiniz callBackUrl adresine otomatik olarak yöneldirilir.

Oluşturulan linki bir button/link/div vb. dilediğiniz şekilde ödeme sayfanızda gösterebilirsiniz. Link ile birlikte alacağınız "token" bu aşamada veya callBackUrl adresine post edildiğinde(ödeme sürecinin ilerletilmesi durumunda) saklanabilir. Ayrıca oluşan link ve token değerlerinin geçerlilik süresi 30 dakikadır. Bu süre zarfında ödeme alınmaz ise token geçerliliği sona erecektir.

Alıcı(Buyer) parametreleri name, surname, email ve gsmNumber gerçek değerler olmalıdır. Bu değerler hem teknik entegrasyonunuz için hem de checkout sayfasında müşterilerinizin deneyimi için önemlidir. Bu değerler "iyzico ile öde" sayfasında input alanlarında ön tanımlı olarak gösterilir.

"iyzico ile öde" Müşteri Karşılama Ekranı

Aşağıdaki ekran müşterinizin linke tıkladığında yönlendirileceği ekrandır. Bu andan itibaren müşteriniz ödeme sürecini dilediği şekilde tamamlayabilir. Üye işyerlerimiz ise sadece callBackUrl adresine gönderilen token bilgisini kontrol etmelidir.

Not: callBackUrl adresi SSL'e sahip olmalıdır.

Servise gönderilmesi gereken parametreler şu şekildedir:

Parametre ismi Tip Zorunluluk Açıklama
locale string Hayır iyzico istek sonucunda dönen metinlerin dilini ayarlamak için kullanılır. Varsayılan değeri tr’dir.
conversationId string Hayır İstek esnasında gönderip, sonuçta alabileceğiniz bir değer, request/response eşleşmesi yapmak için kullanılabilir.
price Decimal Evet Ödeme sepet tutarı. Kırılım tutarlar toplamı, sepet tutarına eşit olmalı.
paidPrice Decimal Evet İndirim, vergi, taksit komisyonları gibi değerlerin dahil edildiği tutar.
currency String Evet Para birimi. Default değeri TL’dir. Kullanılabilen diğer değerler ise USD, EUR, GBP ve IRR’dir.
enabledInstallments Integer Hayır Taksit bilgisi, tek çekim için 1 gönderilmelidir. Geçerli değerler: 1, 2, 3, 6, 9.
basketId String Hayır Üye işyeri sepet id’si.
paymentGroup String Hayır Ödeme grubu, varsayılan PRODUCT. Geçerli değerler enum içinde sunulmaktadır: PRODUCT, LISTING, SUBSCRIPTION
paymentSource String Hayır Ödeme kanalı. Geçerli değerler SHOPIFY, MAGENTO, PRESTASHOP, WOOCOMMERCE, OPENCART
callbackUrl String Evet Ödeme akışında üye işyerine başarılı ve hatalı sonucu bildirmek üzere alınan URL adresi. Geçerli bir ssl sertifikasına sahip olmalıdır.
id(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait id.
name(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait ad.
surname(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait soyad.
identityNumber(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait kimlik (TCKN) numarası.
city(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait şehir bilgisi.
country(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait ülke bilgisi.
email(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait e-posta bilgisi. E-posta adresi alıcıya ait geçerli ve erişilebilir bir adres olmalıdır.
gsmNumber(Buyer) String Hayır Üye işyeri tarafındaki alıcıya ait GSM numarası.
ip(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait IP adresi.
registrationAddress(Buyer) String Evet Üye işyeri tarafındaki alıcıya ait kayıt adresi.
zipCode(Buyer) String Hayır Üye işyeri tarafındaki alıcıya ait posta kodu.
registrationDate(Buyer) String Hayır Üye işyeri tarafındaki alıcıya ait kayıt tarihi. Tarih formatı 2015-09- 17 23:45:06 şeklinde olmalıdır.
lastLoginDate(Buyer) String Hayır Üye işyeri tarafındaki alıcıya ait son giriş tarihi. Tarih formatı 2015- 09-17 23:45:06 şeklinde olmalıdır.
contactName(BillingAddress) String Evet Üye işyeri tarafındaki fatura adresi, ad, soyad bilgisi.
city(BillingAddress) String Evet Üye işyeri tarafındaki fatura adresi şehir bilgisi.
country(BillingAddress) String Evet Üye işyeri tarafındaki fatura adresi ülke bilgisi.
address(BillingAddress) String Evet Üye işyeri tarafındaki fatura adresi.
zipCode(BillingAddress) String Hayır Üye işyeri tarafındaki fatura adresi posta kodu.
contactName(ShippingAddress) String Evet Üye işyeri tarafındaki teslimat adresi ad soyad bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.
city(ShippingAddress) String Evet Üye işyeri tarafındaki teslimat adresi şehir bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.
country(ShippingAddress) String Evet Üye işyeri tarafındaki teslimat adresi ülke bilgisi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.
address(ShippingAddress) String Evet Üye işyeri tarafındaki teslimat adresi. Sepetteki ürünlerden en az 1 tanesi fiziksel ürün (itemType=PHYSICAL) ise zorunludur.
zipCode(ShippingAddress) String Hayır Üye işyeri tarafındaki teslimat adresi posta kodu.
id(BasketItem) String Evet Üye işyeri tarafındaki sepetteki ürüne ait id. Not: Bir ödeme isteğine maksimum 500 basketItem eklenebilir.
itemType(BasketItem) String Evet Üye işyeri tarafındaki sepetteki ürüne ait tip. Geçerli enum değerler: PHYSICAL ve VIRTUAL
name(BasketItem) String Evet Üye işyeri tarafındaki sepetteki ürüne ait ismi.
category1(BasketItem) String Evet Üye işyeri tarafındaki sepetteki ürüne ait kategori 1.
category2(BasketItem) String Hayır Üye işyeri tarafındaki sepetteki ürüne ait kategori 2.
price(BasketItem) Decimal Evet Üye işyeri tarafındaki sepetteki ürüne ait tutar. 0 ve 0’dan küçük olamaz, tutarlar toplamı sepet tutarına (price) eşit olmalıdır.

 

Servisten dönen parametreler şu şekildedir:

Parametre ismi Tip Açıklama
payWithIyzicoPageUrl string iyzico ile ödeme sayfasının eşsiz linki. Son kullanıcının ödeme yapması için yönlendirilmesi gereken adres.
token string iyzico ile ödeme için oluşturulan tekil değer. Her istek için özel üretilir ve işyerine dönülür. Ödemenin sonucunu öğrenmek için zorunlu bir alandır. Varsayılan olarak 1800 saniye geçerliliği vardır.
tokenExpireTime Integer iyzico ile ödeme için üretilmiş olan token ve link değerinin geçerlilik süresi.
status string Yapılan isteğin sonucunu bildirir. İşlem başarılı ise success, hatalı ise failure döner.
errorCode string İşlem hatalıysa, bu hataya dair belirtilen koddur.
errorMessage string İşlem hatalıysa, bu hataya dair belirtilen mesajdır, locale parametresine göre dil desteği sunar.
errorGroup string İşlem hatalıysa, bu hataya dair belirtilen gruptur.
locale string İstekte belirtilen locale değeri geri dönülür, varsayılan değeridir.
systemTime integer Dönen sonucun o anki unix timestamp değeridir.
conversationId string İstek esnasında gönderilmişse, sonuçta aynen geri iletilir.

Dönen cevap içerisindeki payWithIyzicoPageUrl parametresi iyzico ile ödeme sayfasını çağırmak için gerekli linktir.

$request = new \Iyzipay\Request\CreatePayWithIyzicoInitializeRequest();
$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.merchant.com/callback");
$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);
# make request
$payWithIyzicoInitialize = \Iyzipay\Model\PayWithIyzicoInitialize::create($request, Config::options());
//Request
{
    "locale": "tr",
    "conversationId": "123456789",
    "price": "1.0",
    "basketId": "MAC",
    "paymentGroup": "PRODUCT",
    "buyer": {
        "id": "BY789",
        "name": "John",
        "surname": "Doe",
        "identityNumber": "74300864791",
        "email": "email@email.com",
        "gsmNumber": "+905350000000",
        "registrationDate": "2013-04-21 15:12:09",
        "lastLoginDate": "2015-10-05 12:43:35",
        "registrationAddress": "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
        "city": "Istanbul",
        "country": "Turkey",
        "zipCode": "34732",
        "ip": "85.34.78.112"
    },
    "shippingAddress": {
        "address": "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
        "zipCode": "34742",
        "contactName": "Jane Doe",
        "city": "Istanbul",
        "country": "Turkey"
    },
    "billingAddress": {
        "address": "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1",
        "zipCode": "34742",
        "contactName": "Jane Doe",
        "city": "Istanbul",
        "country": "Turkey"
    },
    "basketItems": [
        {
            "id": "BI101",
            "price": "0.3",
            "name": "Binocular",
            "category1": "Collectibles",
            "category2": "Accessories",
            "itemType": "PHYSICAL"
        },
        {
            "id": "BI102",
            "price": "0.5",
            "name": "Game code",
            "category1": "Game",
            "category2": "Online Game Items",
            "itemType": "VIRTUAL"
        },
        {
            "id": "BI103",
            "name": "Usb",
            "price": "0.2",
            "category1": "Electronics",
            "category2": "Usb / Cable",
            "itemType": "PHYSICAL"
        }
    ],

    "callbackUrl": "https://merchantwebsite.com",
    "currency": "TRY",
    "paidPrice": "1.2"
}

//Response
{
    "status": "success",
    "locale": "tr",
    "systemTime": 1570477711152,
    "conversationId": "123456789",
    "token": "15327f52-e048-4z09-9928-4g083dfdf25c",
    "tokenExpireTime": 1800,
    "payWithIyzicoPageUrl": "https://sandbox-consumer.iyzico.com/checkout?token=15327f52-e048-4z09-9928-4g083dfdf25c&lang=tr"
}

Örnek Kodlar

NOT: Diğer kütüphaneler en kısa sürede güncellenecektir. Destek için entegrasyon@iyzico.com adresine e-mail atabilirsiniz