stripe checkout
unknown
php_laravel_blade
a year ago
2.8 kB
11
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