leyla_00 rotanızda auth middleware olmadığına emin olun. odemeYap methodunuzda dd($request->all()) diyerek geriye dönen tüm verileri kontrol edin, request ile gelen token değeri ödeme ile ilgili takibi yapmak için veriliyor yani sesiondaki order_no gerek yok ve isimlendirme yaparken dikkat edin RetrieveCheckoutFormRequest oluştururken $request adını kullanmışsınız.
Route::match(array('GET','POST'),'/siparisler/{user}', 'OdemeController@odemeyap')
->name('siparisler')
->middleware('signed')
->withoutMiddleware('auth');
public function odemeyap(Request $request, Kullanici $user)
{
if (!auth()->check()) {
auth()->login($user);
}
$options = new \Iyzipay\Options();
$options->setApiKey(“sandbox-”);
$options->setSecretKey(“sandbox-”);
$options->setBaseUrl(“https://sandbox-api.iyzipay.com”);
$token = $request->get('token');
$checkRequest = new \Iyzipay\Request\RetrieveCheckoutFormRequest();
$checkRequest->setLocale(\Iyzipay\Model\Locale::TR);
$checkRequest->setConversationId(rand(1,10000)); // buradaki conversationid request'i takip etmek için verilmeli
$checkRequest->setToken($token); // $request den gelen token değeri ödemeye ait token bilgisi bulunuyor bunu veritabanına kaydederek tekrar erişebilirsiniz.
$checkoutForm = \Iyzipay\Model\CheckoutForm::retrieve($checkRequest, $options);
return view('siparisler', compact('checkoutForm'));
}
siparisler.blade.php
@if(strtolower($checkoutForm->getPaymentStatus()) == \Iyzipay\Model\Status::SUCCESS)
<div class="card">
<div class="card-header alert-success">Ödeme Başarılı ({{ $checkoutForm->getBasketId() }})</div>
<div class="card-body">
Tutar: {!! $checkoutForm->getPrice() !!}<br>
Ödenen Tutar: {!! $checkoutForm->getPaidPrice() !!}<br>
@foreach($checkoutForm->getPaymentItems() as $item)
<p></p>
item ID:{{ $item->getItemId() }} <br>
item price:{{ $item->getPrice() }} <br>
@endforeach
</div>
</div>
@else
Başaramadık abi
@endif