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.