stripe checkout
unknown
php_laravel_blade
6 months ago
2.8 kB
5
Indexable
public function createStripeCheckout($output) { $request_credentials = $this->getStripeRequestCredentials($output); $stripe_client = new StripeClient($request_credentials->token); $temp_record_token = generate_unique_string('temporary_datas','identifier',60); $this->setUrlParams("token=" . $temp_record_token); // set Parameter to URL for identifying when return success/cancel $redirection = $this->getRedirection(); $url_parameter = $this->getUrlParams(); $user = auth()->guard(get_auth_guard())->user(); try{ $checkout = $stripe_client->checkout->sessions->create([ 'mode' => 'payment', 'success_url' => $this->setGatewayRoute($redirection['return_url'],PaymentGatewayConst::STRIPE,$url_parameter), 'cancel_url' => $this->setGatewayRoute($redirection['cancel_url'],PaymentGatewayConst::STRIPE,$url_parameter), 'customer_email' => $user->email, 'line_items' => [ [ 'price_data' => [ 'product_data' => [ 'name' => "Add Money", 'description' => "Add Money To Wallet (" . $output['wallet']->currency->code . "). Payment Currency " . $output['currency']->currency_code, 'images' => [ [ get_logo() ] ] ], 'unit_amount_decimal' => get_amount($output['amount']->total_amount, null, 2) * 100, // as per stripe policy, 'currency' => $output['currency']->currency_code, ], 'quantity' => 1, ] ], ]); $response_array = json_decode(json_encode($checkout->getLastResponse()->json), true); $this->stripeJunkInsert($response_array, $temp_record_token); }catch(Exception $e) { throw new Exception($e->getMessage()); } $redirect_url = $response_array['url'] ?? null; if(!$redirect_url) throw new Exception("Something went wrong! Please try again"); if(request()->expectsJson()) { // API Response $this->output['redirection_response'] = $response_array; $this->output['redirect_links'] = []; $this->output['redirect_url'] = $redirect_url; return $this->output; } return redirect()->away($response_array['url']); }
Editor is loading...
Leave a Comment