Hey guys I get this error :
Too few arguments to function App\Http\Controllers\PagesController::payment_process(), 1 passed and exactly 2 expected
I don't know what's wrong with $productPrice parameter from payment_process() method.
I can see the payment in stripe dashboard without any errors but on my page after my form was submitted it appears the error that I've mentioned above.
Any help please?
public function payment(Request $request,$id){
$products = ProductsModel::findorfail($id);
$productPrice = $products->price;
$this->payment_process($request,$productPrice);
return view('pages/payment')->with(['products' => $products]);
}
public function payment_process(Request $request,$productPrice){
\Stripe\Stripe::setApiKey('...');
try {
Charge::create ( array (
"amount" => $productPrice * 100,
"currency" => "usd",
"source" => 'tok_visa', // obtained with Stripe.js
"description" => "Test payment."
) );
$this->validate($request, [
'firstName' => 'required',
'lastName' => 'required',
'country' => 'required',
'state' => 'required',
'zip' => 'required',
'address'=> 'required'
]);
$product = new OrderDetailsModel;
$product->firstName = request('firstName');
$product->lastName = request('lastName');
$product->email = request('email');
$product->country = request('country');
$product->address = request('address');
$product->address2 = request('address2');
$product->state = request('state');
$product->zip = request('zip');
$product->extrainformation = 'null';
$product->save();
Session::flash ( 'success-message', 'Payment done successfully !' );
return Redirect::back ();
}
catch ( \Exception $e ) {
Session::flash ( 'fail-message', "Error! Please Try again." );
return Redirect::back ();
}
return redirect('/')->with('success', 'Order Created');
}
My web.php file :
Auth::routes();
Route::get('/', 'PagesController@index');
Route::get('/about', function(){
return '<h1>This is about page</h1>';
});
Route::get('/products', 'PagesController@products');
Route::post('/add_product', 'PagesController@add_product');
Route::get('/payment/{id}', 'PagesController@payment');
Route::post('/payment_process', 'PagesController@payment_process');
Route::get('/dashboard', 'DashboardController@index');
Route::get('/edit/{id}', 'PagesController@edit_product');
Route::get('/delete/{id}', 'PagesController@delete');
Route::post('/{id}','PagesController@update_product');