Отсутствуют необходимые параметры для маршрута после ответа razorpay в laravel

Я пытаюсь перенаправить на какой-то route:url, чтобы захватить мой платеж, и мне нужно передать payment_id и amount для захвата с контроллера, но маршруты выдают ошибку, как показано ниже

заранее спасибо

Ошибки у меня есть

ErrorException (E_ERROR)
  Missing required parameters for [Route: razorpay.standard.success] [URI: razorpay/standard/success/{rzpId}/{amount}]. (View: /home/valpuia/projects/bagisto/packages/Vaube/Razorpay/src/Resources/views/standard-redirect.blade.php)

Мой маршрут

Route::prefix('razorpay/standard')->group(function () {
    Route::get('/success/{rzpId}/{amount}', 'RazorPayController@success')->name('razorpay.standard.success');
}

Контроллер

public function success($rzpId, $amt)
{
    dd($rzpId);
}

Blade.php after razorpay completed

"handler": function (response){
            // alert(response.razorpay_payment_id);
            if (typeof response.razorpay_payment_id == 'undefined' || response.razorpay_payment_id < 1) {
                redirect_url = '{{ route('razorpay.standard.cancel') }}';
            } else {
                redirect_url = '{{ route('razorpay.standard.success', [ "rzp_id" => 'response.razorpay_payment_id', "amount" => '$total_amount * 100']) }}';
            }
            location.href = redirect_url;
        },

person Vpa    schedule 03.12.2019    source источник


Ответы (2)


Вы не можете использовать переменные javascript внутри PHP

попробуйте это решение:

Route::prefix('razorpay/standard')->group(function () {
    Route::get('/success/{rzpId?}/{amount?}', 'RazorPayController@success')->name('razorpay.standard.success');
}

а затем измените маршрут на

"handler": function (response){
            // alert(response.razorpay_payment_id);
            if (typeof response.razorpay_payment_id == 'undefined' || response.razorpay_payment_id < 1) {
                redirect_url = '{{ route('razorpay.standard.cancel') }}';
            } else {
                redirect_url = '{{ route("razorpay.standard.success")}}/'+response.razorpay_payment_id+'/'+'{{$total_amount * 100}}';
            }
            location.href = redirect_url;
        },

person Farid M    schedule 03.12.2019
comment
yayy .... он работает, но зачем {rzpId?} добавить question mark? Вы можете объяснить - person Vpa; 03.12.2019
comment
потому что сначала вам нужно использовать маршрут без каких-либо параметров - person Farid M; 03.12.2019
comment
{{route (razorpay.standard.success)}} - person Farid M; 03.12.2019

Я думаю, у вас опечатка в названии параметра.

Пожалуйста, замените

"rzp_id" => 'response.razorpay_payment_id'

с участием

"rzpId" => 'response.razorpay_payment_id'

и попробовать

person Nauphal    schedule 03.12.2019
comment
все еще не работает, также я пытаюсь redirect_url = '{{ route('razorpay.standard.success', [ "rzpId" => ' + response.razorpay_payment_id + ', "amount" => ' . $total_amount * 100 . ']) }}'; объединить, но все еще не работает - person Vpa; 03.12.2019