setClientId($client_id); $gateway->setSecret($client_secret); $gateway->setTestMode($mode); $response = $gateway->purchase(array( 'amount' => $amount, 'currency' => strtoupper($currency), 'returnUrl' => Paypal::fallback(), 'cancelUrl' => Paypal::redirect_if_payment_faild(), ))->send(); if ($response->isRedirect()) { if (request()->expectsJson()) { return $response->getRedirectUrl(); } $response->redirect(); // this will automatically forward the customer } else { // not successful return request()->expectsJson() ? Paypal::redirect_if_payment_faild() : redirect(Paypal::redirect_if_payment_faild()); } } public function status(Request $request) { abort_if(!Session::has('paypal_credentials'), 404); $credentials = Session::get('paypal_credentials'); $gateway = Omnipay::create('PayPal_Rest'); $gateway->setClientId($credentials['client_id']); $gateway->setSecret($credentials['client_secret']); $gateway->setTestMode($credentials['mode']); $request = $request->all(); $transaction = $gateway->completePurchase(array( 'payer_id' => $request['PayerID'], 'transactionReference' => $request['paymentId'], )); $response = $transaction->send(); if ($response->isSuccessful()) { $arr_body = $response->getData(); $data['payment_id'] = $arr_body['id']; $data['payment_method'] = "paypal"; $data['gateway_id'] = $credentials['gateway_id']; $data['amount'] = $credentials['main_amount']; $data['charge'] = $credentials['charge']; $data['status'] = 1; $data['payment_status'] = 1; Session::put('payment_info', $data); Session::forget('paypal_credentials'); return request()->expectsJson() ? Paypal::redirect_if_payment_success() : redirect(Paypal::redirect_if_payment_success()); } else { $data['payment_status'] = 0; Session::put('payment_info', $data); Session::forget('paypal_credentials'); return request()->expectsJson() ? Paypal::redirect_if_payment_faild() : redirect(Paypal::redirect_if_payment_faild()); } } }