Geçersiz istek hatası
furkandamar opened this issue · 3 comments
Merhaba ödeme alınırken geçersiz istek hatası veriyor. Hata kodu 11
Furkan Bey selamlar. Rica etsem destek@iyzico.com adresine istek detaylarını iletir misiniz?
Teşekkürler
@fuko93 nasıl çözdüğünü hatırlıyor musun? Ben de aynı hatayla karşılaşıyorum ve çözemedim iki gündür.
Bu sorunu tekrar yaşayanlar olabilir diye paylaşıyorum;
iyzico checkout form ayarlarında sepet ve ödenecek tutar değerlerini girerken ne yaptım da sorun çözüldü örnek senaryo ile anlatıyorum.
Farzedelim ki sepette 2 farklı ürünümüz var. Bunlardan 1er tane var, birinin fiyatı 5 diğerinin fiyatı 10 lira olsun. 10 liralık üründe ekstra opsiyon seçimi ile 5 liralık bi artı fiyat olsun. Yani toplamda 20 liralık bi ödeme almamız gereken senaryo var. Bu senaryoya göre ayarlarımızı aşağıdaki gibi yapmamız gerekiyor.
$urun_toplam = 0;
$genel_toplam = 0;
foreach($_SESSION['cart'] as $a => $b){
$urun_toplam = $urun_toplam + ($b['adet'] * $b['fiyat']); // buradaki fiyat ürünün vergisiz ve ekstrasız yalın fiyatı
$genel_toplam = $genel_toplam + $b['toplam']; // Buradaki toplam değeri ürün fiyatının adetle çarpımı ve ekstra fiyat varsa dahil edilmiş hali.
}
$request->setPrice($urun_toplam)
$request->setPaidPrice($genel_toplam)
price değerleri üstteki gibi olmalı ayrıca şu kısımda da setPrice değeri için göndediğimiz toplama eşit ürün kırılım fiyatını ayarlamamız gerek. Örneğin;
$basketItems = array();
$say= 0;
foreach($_SESSION['cart_iyzi'] as $order => $key){
$tekil = $b['adet'] * $b['fiyat']; // Ekstra ücretlerin olmadığı yalın fiyatla adeti çarptık. ve price kısmına yazdık.
$uruns = new \Iyzipay\Model\BasketItem();
$uruns->setId($key['urunid']);
$uruns->setName($key['urunadi']);
$uruns->setCategory1("Yemek");
$uruns->setCategory2("Yemek");
$uruns->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$uruns->setPrice($tekil);
$basketItems[$basketsay] = $uruns;
$say++;
}
Ayarlamanızı yaparken bu hususa dikkat edin, setPrice bölümü yalın vergisiz ekstrasız toplam fiyat olsun, setPaidPrice kısmında ise alacağımız ödeme değeri vergiler ve opsiyonlar dahil edilmiş fiyatı belirtelim. Daha yeni bu tarz bi hata aldığım için belirtiyorum. Paidprice ve price değerlerini 10 olarak gönderdiğimde form geliyordu fakat gönderdiğim değere küsürat eklendiğinde geçersiz istek hatası veriyordu bende düzenlememi yukarıda anlattığım şekilde uyguladım ve form hatasız yüklendi.
Özetle ürün kırılımları toplam fiyatı $request->setPrice() bölümünde verdiğimiz fiyata eşit olacak vergisiz ve ekstrasız olarak. Ödeme olarak alacağımız tam tutarı da setPaidPrice() bölümünde belirtip sorunu çözmüş olacağız. Neden bu kadar uzattım derseniz hiç bilmeyene dahi faydam dokunabilirse ne mutlu :)