• 20-02-2022, 23:28:52
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Arkadaşlar selam, iyzico'nun normal sanal pos entegrasyonu var ve sağlam çalışıyor fakat projeyi pazaryeri olarak değiştirdiğimiz için, iyzico ile pazaryeri anlaşması yaptık, api alındı fakat aşağıdaki gibi subMerchantkey hatası geldi.



    iyzico kodu aşağıdaki gibiydi;
    # create request class
        $request = new \Iyzipay\Request\CreateCheckoutFormInitializeRequest();
        $request->setLocale(\Iyzipay\Model\Locale::TR);
        $request->setConversationId($conversation_id);
        $request->setPrice($item_basket_price);
        $request->setPaidPrice($item_basket_price);
        $request->setCurrency(\Iyzipay\Model\Currency::TL);
        $request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);
        $request->setCallbackUrl($callback_url);
        $request->setEnabledInstallments(array(2, 3, 6, 9));
    
        $buyer = new \Iyzipay\Model\Buyer();
        $buyer->setId($customer->id);
        $buyer->setName($customer->first_name);
        $buyer->setSurname($customer->last_name);
        $buyer->setGsmNumber($customer->phone_number);
        $buyer->setEmail($customer->email);
        $buyer->setIdentityNumber("11111111111");
        $buyer->setRegistrationAddress("not_set");
        $buyer->setIp($ip);
        $buyer->setCity("not_set");
        $buyer->setCountry("not_set");
        $buyer->setZipCode("not_set");
        $request->setBuyer($buyer);
    
        $shippingAddress = new \Iyzipay\Model\Address();
        $shippingAddress->setContactName("not_set");
        $shippingAddress->setCity("not_set");
        $shippingAddress->setCountry("not_set");
        $shippingAddress->setAddress("not_set");
        $shippingAddress->setZipCode("");
        $request->setShippingAddress($shippingAddress);
    
        $billingAddress = new \Iyzipay\Model\Address();
        $billingAddress->setContactName("not_set");
        $billingAddress->setCity("not_set");
        $billingAddress->setCountry("not_set");
        $billingAddress->setAddress("not_set");
        $billingAddress->setZipCode("");
        $request->setBillingAddress($billingAddress);
    
        $basketItems = array();
        $BasketItem = new \Iyzipay\Model\BasketItem();
        $BasketItem->setId("0");
        $BasketItem->setName($item_basket_name);
        $BasketItem->setCategory1($item_basket_category);
        $BasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
        $BasketItem->setPrice($item_basket_price);
        $basketItems[0] = $BasketItem;
    Daha sonra iyzico'nun subMerchantkey için burada paylaştığı kodu $request kısımlarının tamamını yapıştırdım ve düzenledim. Aşağıdaki gibi hata geldi.;

    $request = new \Iyzipay\Request\CreateSubMerchantRequest();
        $request->setLocale(\Iyzipay\Model\Locale::TR);
        $request->setConversationId("$conversation_id");
        $request->setPrice($item_basket_price);
        $request->setPaidPrice($item_basket_price);
        $request->setSubMerchantExternalId("B49224");
        $request->setSubMerchantType(\Iyzipay\Model\SubMerchantType::PERSONAL);
        $request->setAddress("not_set");
        $request->setName("$customer->first_name");
        $request->setSurname("$customer->last_name");
        $request->setEmail("$customer->email");
        $request->setGsmNumber("$customer->phone_number");
        $request->setName("$customer->shop_name");
        $request->setIban("not_set");
        $request->setIdentityNumber("11111111111");
        $request->setCurrency(\Iyzipay\Model\Currency::TL);
        $request->setCallbackUrl($callback_url);
        $request->setEnabledInstallments(array(2, 3, 6, 9));
    
        # make request
        $subMerchant = \Iyzipay\Model\SubMerchant::create($request, Config::options());
    
        # print result
        print_r($subMerchant);
    
        $buyer = new \Iyzipay\Model\Buyer();
        $buyer->setId($customer->id);
        $buyer->setName($customer->first_name);
        $buyer->setSurname($customer->last_name);
        $buyer->setGsmNumber($customer->phone_number);
        $buyer->setEmail($customer->email);
        $buyer->setIdentityNumber("11111111111");
        $buyer->setRegistrationAddress("not_set");
        $buyer->setIp($ip);
        $buyer->setCity("not_set");
        $buyer->setCountry("not_set");
        $buyer->setZipCode("not_set");
        $request->setBuyer($buyer);
    
        $shippingAddress = new \Iyzipay\Model\Address();
        $shippingAddress->setContactName("not_set");
        $shippingAddress->setCity("not_set");
        $shippingAddress->setCountry("not_set");
        $shippingAddress->setAddress("not_set");
        $shippingAddress->setZipCode("");
        $request->setShippingAddress($shippingAddress);
    
        $billingAddress = new \Iyzipay\Model\Address();
        $billingAddress->setContactName("not_set");
        $billingAddress->setCity("not_set");
        $billingAddress->setCountry("not_set");
        $billingAddress->setAddress("not_set");
        $billingAddress->setZipCode("");
        $request->setBillingAddress($billingAddress);
    
        $basketItems = array();
        $BasketItem = new \Iyzipay\Model\BasketItem();
        $BasketItem->setId("0");
        $BasketItem->setName($item_basket_name);
        $BasketItem->setCategory1($item_basket_category);
        $BasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
        $BasketItem->setPrice($item_basket_price);
        $BasketItem->setSubMerchantKey("not_set");
        $BasketItem->setSubMerchantPrice("not_set");
        $basketItems[0] = $BasketItem;


    yukarıdaki gibi bir hata görünce bu sefer maksat test olsun diye iyziconun o sitede paylaştığı kodu ( personal ) kısmını alıp doğrudan yapıştırdım. Fakat bu sefer de farklı bir hata çıktı.

     # create request class
        $request = new \Iyzipay\Request\CreateSubMerchantRequest();
        $request->setLocale(\Iyzipay\Model\Locale::TR);
        $request->setConversationId("123456789");
        $request->setSubMerchantExternalId("B49224");
        $request->setSubMerchantType(\Iyzipay\Model\SubMerchantType::PERSONAL);
        $request->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
        $request->setContactName("John");
        $request->setContactSurname("Doe");
        $request->setEmail("email@submerchantemail.com");
        $request->setGsmNumber("+905350000000");
        $request->setName("John's market");
        $request->setIban("TR180006200119000006672315");
        $request->setIdentityNumber("31300864726");
        $request->setCurrency(\Iyzipay\Model\Currency::TL);
    
        # make request
        $subMerchant = \Iyzipay\Model\SubMerchant::create($request, Config::options());
    
        # print result
        print_r($subMerchant);
    
        $buyer = new \Iyzipay\Model\Buyer();
        $buyer->setId($customer->id);
        $buyer->setName($customer->first_name);
        $buyer->setSurname($customer->last_name);
        $buyer->setGsmNumber($customer->phone_number);
        $buyer->setEmail($customer->email);
        $buyer->setIdentityNumber("11111111111");
        $buyer->setRegistrationAddress("not_set");
        $buyer->setIp($ip);
        $buyer->setCity("not_set");
        $buyer->setCountry("not_set");
        $buyer->setZipCode("not_set");
        $request->setBuyer($buyer);
    
        $shippingAddress = new \Iyzipay\Model\Address();
        $shippingAddress->setContactName("not_set");
        $shippingAddress->setCity("not_set");
        $shippingAddress->setCountry("not_set");
        $shippingAddress->setAddress("not_set");
        $shippingAddress->setZipCode("");
        $request->setShippingAddress($shippingAddress);
    
        $billingAddress = new \Iyzipay\Model\Address();
        $billingAddress->setContactName("not_set");
        $billingAddress->setCity("not_set");
        $billingAddress->setCountry("not_set");
        $billingAddress->setAddress("not_set");
        $billingAddress->setZipCode("");
        $request->setBillingAddress($billingAddress);
    
        $basketItems = array();
        $BasketItem = new \Iyzipay\Model\BasketItem();
        $BasketItem->setId("0");
        $BasketItem->setName($item_basket_name);
        $BasketItem->setCategory1($item_basket_category);
        $BasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
        $BasketItem->setPrice($item_basket_price);
        $BasketItem->setSubMerchantKey("not_set");
        $BasketItem->setSubMerchantPrice("not_set");
        $basketItems[0] = $BasketItem;


    Konuyla ilgili çözüm konusunda yardımcı olabilecek arkadaşlar php'de çok iyi olmadığım için cevap verirken biraz detaylı cevap verirlerse sevinirim.
  • 20-02-2022, 23:30:21
    #2
    iyzico pazaryeri modelindeki entegrasyon normal entegrasyondan tamamen farklı.

    sepet kırılımlarını ayırt ettikten sonra her bir satıcının bilgilerini ve satılan ürünleride iyzicoya belirtmeniz gerekir. iyzico ödeme onayı sonrası ücreti size değil direkt olarak satıcıya aktarıyor.
  • 20-02-2022, 23:33:16
    #3
    Developer
    composer ile kütüphaneyi yüklediniz mi?
  • 20-02-2022, 23:35:47
    #4
    İyzico pazaryeri entegresi sandığınız kadar kolay değil. Öncelikle tüm satıcıları api ile iyzicoya tanımlayacaksınız her tanımlama için size submercahtkey verecek. Sonra bu key i sitedeki satıcılarla ilişkilendireceksiniz. her satıcının sepetteki ürününü submercahtkey ile birlikte yürüteceksiniz flan filan uzun iş yani.
  • 20-02-2022, 23:48:54
    #5
    brown adlı üyeden alıntı: mesajı görüntüle
    composer ile kütüphaneyi yüklediniz mi?
    <?php defined('BASEPATH') or exit('No direct script access allowed');
    if (!empty($payment_gateway) && $payment_gateway->name_key == "iyzico"):
        require_once(APPPATH . 'third_party/iyzipay/vendor/autoload.php');
        require_once(APPPATH . 'third_party/iyzipay/vendor/iyzico/iyzipay-php/IyzipayBootstrap.php');
        IyzipayBootstrap::init();
        $options = new \Iyzipay\Options();
        $options->setApiKey($payment_gateway->public_key);
        $options->setSecretKey($payment_gateway->secret_key);
        if ($payment_gateway->environment == "sandbox") {
            $options->setBaseUrl("https://sandbox-api.iyzipay.com");
        } else {
            $options->setBaseUrl("https://api.iyzipay.com");
        }
        
        $conversation_id = generate_short_unique_id();
        $customer = get_cart_customer_data();
    başı bu tarz tabii devamını buraya eklemedim ama kütüphane ekli
  • 20-02-2022, 23:49:29
    #6
    Polat adlı üyeden alıntı: mesajı görüntüle
    iyzico pazaryeri modelindeki entegrasyon normal entegrasyondan tamamen farklı.

    sepet kırılımlarını ayırt ettikten sonra her bir satıcının bilgilerini ve satılan ürünleride iyzicoya belirtmeniz gerekir. iyzico ödeme onayı sonrası ücreti size değil direkt olarak satıcıya aktarıyor.
    işte bunu nasıl yapıyoruz kodları yukarıda paylaştım, oralarda değişiklik yapmayacak mıyız?
  • 20-02-2022, 23:51:15
    #7
    Aytacgogu adlı üyeden alıntı: mesajı görüntüle
    işte bunu nasıl yapıyoruz kodları yukarıda paylaştım, oralarda değişiklik yapmayacak mıyız?
    https://dev.iyzipay.com/tr/pazaryeri

    burayı incelediniz mi? burada anlatılıyor aslında okursanız tamamen.
  • 21-02-2022, 00:03:46
    #8
    Polat adlı üyeden alıntı: mesajı görüntüle
    https://dev.iyzipay.com/tr/pazaryeri

    burayı incelediniz mi? burada anlatılıyor aslında okursanız tamamen.
    hocam okudum zaten ona göre yaptım ama işte yukarıda adım adım kodları da paylaştım. Alınan hatalara ait ekran görüntülerini de paylaştım devam edemiyorum tıkandım. Çözüm bulamadım
  • 21-02-2022, 22:36:28
    #9
    Bu arada submerchantkey'ler db'de tutmuyoruz.