İyzico’nun standart sanal pos dışında pazaryeri web servisi de mevcut. Pazaryeri webservisini kullanabilmek için entegrasyon@iyzico.com’a mail atıp başvuruda bulunmanız gerekiyor.

Öncelikle mantık şu şekilde; sitenizdeki satıcıları ve satıcının bilgilerini(iban no, tc no vs.) Iyzico’ya kaydetmeniz gerekiyor. Satıcıyı Iyzico’ya kayıt ettikten sonra iyziconun web servisinden SubMerchantKey değeri dönüyor. Bu key bizim satıcımızın Iyzico’daki id değeridir. Satıcı herhangi bir satış yaptığında da bu keyi gönderip Iyzico’nun satıcımızın kim olduğunu öğrenmesini ve ödemeyi o satıcıya göndermesini sağlıyoruz. Detaylı bilgiyi Iyzico’nun dökümanından inceleyebilirsiniz. https://dev.iyzipay.com/tr/pazaryeri

Satıcı bilgilerini iyzicoya kaydetmek için kodlar;

Not: Bu bilgileri satıcı kaydı sırasında veya satıcının hesap bilgilerini ekleme sırasında çalıştırmamız mantıklı olacaktır.

$request = new \Iyzipay\Request\CreateSubMerchantRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId(123456789);
$request->setSubMerchantExternalId('satıcının bizim sistemimizdeki id değeri');
$request->setSubMerchantType(\Iyzipay\Model\SubMerchantType::PERSONAL);
$request->setAddress('adres bilgileri');
$request->setContactName('satıcı adı');
$request->setContactSurname('satıcı soyadı');
$request->setEmail('e-posta adresi');
$request->setGsmNumber('telefon numarası');
$request->setName('adı soyadı');
$request->setIban('satıcı iban numarası');
$request->setIdentityNumber('satıcı tc kimlik numarası');
$request->setCurrency(\Iyzipay\Model\Currency::TL);
# make request
$subMerchant = \Iyzipay\Model\SubMerchant::create($request, Config::options());

 

Daha önce kaydettiğiniz satıcı bilgilerini güncellemek için kodlar;

Not: Bu bilgileri de satıcı bilgilerini veya satıcının hesap bilgilerini güncelleme sırasında çalıştırmanız mantıklı olacaktır. Ekstra olarak kayıtlı olan satıcının setSubMerchantKey değerini gönderiyoruz.

$request = new \Iyzipay\Request\UpdateSubMerchantRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId(123456789);
$request->setSubMerchantKey('kayıtlı setSubMerchantKey değeri');
$request->setAddress('adres bilgileri');
$request->setEmail('e-posta adresi');
$request->setGsmNumber('telefon numarası');
$request->setContactName('satıcı adı');
$request->setContactSurname('satıcı soyadı');
$request->setName('adı soyadı';
$request->setIban('satıcı iban numarası');
$request->setIdentityNumber('satıcı tc kimlik numarası');
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$subMerchant = \Iyzipay\Model\SubMerchant::update($request, $options);

 

Ekleme ve güncelleme arasındaki tek fark en üstteki ve en alttaki Create ve Update yazan bölümlerdir.

Satıcıyı create veya update yaptıktan sonra echo print_r($subMerchant); yaparak dönen değerleri görebiliriz.  echo $subMerchant->getStatus(); yaptığımızda success değeri dönüyorsa işlemimiz başarılı demektir.

$subMerchant->getSubMerchantKey(); ile satıcının SubMerchantKey değerini alıp  kaydedebilirsiniz.

Satış işlemi gerçekleşirken ise standart entegrasyondan farklı olarak sepet ürünlerini gönderirken ise satılan ürüne ait setSubMerchantKey ve setSubMerchantPrice değerlerini gönderiyoruz. setSubMerchantKey değeri  daha önce kaydettiğimiz satıcının id değerini, setSubMerchantPrice ise satıcıya ne kadar ödeme geçeceğini belirtiyor.

Satış Formu kodları;

$request = new \Iyzipay\Request\CreateCheckoutFormInitializeRequest();
$request->setLocale(\Iyzipay\Model\Locale::EN);
$request->setConversationId("123456");
$request->setPrice(100);
$request->setPaidPrice(100);
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);
$request->setCallbackUrl('satış işlemi sonrası dönülecek url');
$request->setEnabledInstallments(array(1));

//müşteri bilgileri
$buyer = new \Iyzipay\Model\Buyer();
$buyer->setId('müşteri id değeri');
$buyer->setName('müşteri adı');
$buyer->setSurname('müşteri soyadı');
$buyer->setGsmNumber('müşteri telefon');
$buyer->setEmail('müşteri e-posta');
$buyer->setIdentityNumber('müşteri tc kimlik no');
$buyer->setLastLoginDate("2015-10-05 12:43:35");
$buyer->setRegistrationDate("2013-04-21 15:12:09");
$buyer->setRegistrationAddress("Istanbul");
$buyer->setIp("85.34.78.112");
$buyer->setCity("Istanbul");
$buyer->setCountry("Turkey");
$buyer->setZipCode("34732");
//müşteri bilgileri devamı
$request->setBuyer($buyer);
//kargo bilgileri
$shippingAddress = new \Iyzipay\Model\Address();
$shippingAddress->setContactName('müşteri adı');
$shippingAddress->setCity('müşteri şehir');
$shippingAddress->setCountry('müşteri ülke');
$shippingAddress->setAddress('müşteri adres');
$shippingAddress->setZipCode('müşteri posta kodu');
$request->setShippingAddress('müşteri adres');//fatura bilgileri
$billingAddress = new \Iyzipay\Model\Address();
$billingAddress->setContactName('müşteri adı');
$billingAddress->setCity('müşteri şehir');
$billingAddress->setCountry('müşteri ülke');
$billingAddress->setAddress('müşteri adres');
$billingAddress->setZipCode('müşteri posta kodu');
$request->setBillingAddress($billingAddress);

//sepetteki ürün bilgileri
$basketItems = array();
$BasketItem = new \Iyzipay\Model\BasketItem();
$BasketItem->setId('ürün id');
$BasketItem->setName('ürün adı');
$BasketItem->setCategory1('ürün kategori');
$BasketItem->setItemType(\Iyzipay\Model\BasketItemType::VIRTUAL);
$BasketItem->setPrice('ürün fiyatı');
$BasketItem->setSubMerchantKey('ürün satıcısının SubMerchantKey değeri');
$BasketItem->setSubMerchantPrice('ürün satışından satıcıya verilecek tutar');
$basketItems[$count] = $BasketItem;

# make request
$payment = \Iyzipay\Model\CheckoutFormInitialize::create($request, $options);
echo $payment->getcheckoutFormContent();

 

Daha sonra formun gözükmesi için html kodunu ekliyoruz ve entegrasyonu tamamlamış oluyoruz.

<div id="iyzipay-checkout-form" class="responsive"></div>