setApiCredentials(config('paypal')); $provider->setAccessToken($provider->getAccessToken()); $provider->setCurrency('EUR'); $order = $provider->createOrder([ "intent"=> "CAPTURE", "purchase_units"=> [ [ "reference_id" => $shopping_payment->reference, "shopping_order_id" => $shopping_payment->shopping_order_id, "amount"=> [ "currency_code"=> "EUR", "value"=> ($shopping_payment->amount / 100) ], 'description' => 'test' ] ], 'application_context' => [ 'cancel_url' => route('cancel.paypal_payment', [$promotion_user_id, $payt->id, $shopping_payment->reference, $identifier]), 'return_url' => route('success.paypal_payment', [$promotion_user_id, $payt->id, $shopping_payment->reference, $identifier]) ] ]); $payt->key = $order['id']; $payt->save(); return redirect($order['links'][1]['href'])->send(); } public function paymentSuccess($id, $transactionId=false, $reference=false, $identifier=false) { $PromotionUser = PromotionUser::findOrFail($id); $payt = PaymentTransaction::findOrFail($transactionId); if($payt->shopping_payment->reference != $reference){ abort(404); } // Init PayPal $provider = \PayPal::setProvider(); $provider->setApiCredentials(config('paypal')); $provider->setAccessToken($provider->getAccessToken()); // Get PaymentOrder using our transaction ID $order = $provider->capturePaymentOrder($payt->key); if(isset($order['type'])){ abort(403, 'PayPal Type: '.$order['type']); } if(!isset($order['status']) || $order['status'] !== "COMPLETED"){ abort(403, 'Error: Order Status '); } if(Request::get('token') !== $payt->key){ abort(403, 'Error: PayPal token'); } $payt->request = $order['status']; $payt->save(); return redirect(route('web_promotion_goto', ['thanksorder', $id, $payt->id, $reference, $identifier])); } public function paymentCancel($id, $transactionId=false, $reference=false, $identifier=false) { $PromotionUser = PromotionUser::findOrFail($id); return redirect(url($PromotionUser->url)); dd('Your payment has been declend. The payment cancelation page goes here!'); } }