· 5 years ago · Jun 10, 2020, 04:34 AM
1<?php
2// Include configuration file
3require_once 'includes/config.php';
4
5// Include Stripe PHP library
6
7require_once 'init.php';
8
9$curl = new \Stripe\HttpClient\CurlClient();
10$curl->setEnableHttp2(false);
11\Stripe\ApiRequestor::setHttpClient($curl);
12
13
14// Set API key
15\Stripe\Stripe::setApiKey("xxxxxx");
16
17$response = array(
18 'status' => 0,
19 'error' => array(
20 'message' => 'Invalid Request!'
21 )
22);
23
24if ($_SERVER['REQUEST_METHOD'] == 'POST') {
25 $input = file_get_contents('php://input');
26 $request = json_decode($input);
27}
28
29if (json_last_error() !== JSON_ERROR_NONE) {
30 http_response_code(400);
31 echo json_encode($response);
32 exit;
33}
34
35if(!empty($request->checkoutSession)){
36 // Create new Checkout Session for the order
37 try {
38 $session = \Stripe\Checkout\Session::create([
39 'payment_method_types' => ['card'],
40 'line_items' => [[
41 'price_data' => [
42 'product_data' => [
43 'name' => $productName,
44 'metadata' => [
45 'pro_id' => $productID
46 ]
47 ],
48 'unit_amount' => $stripeAmount,
49 'currency' => $currency,
50 ],
51 'quantity' => 1,
52 'description' => $productName,
53 ]],
54 'mode' => 'payment',
55 'success_url' => STRIPE_SUCCESS_URL.'?session_id={CHECKOUT_SESSION_ID}',
56 'cancel_url' => STRIPE_CANCEL_URL,
57 ]);
58 }catch(Exception $e) {
59 $api_error = $e->getMessage();
60 }
61
62 if(empty($api_error) && $session){
63 $response = array(
64 'status' => 1,
65 'message' => 'Checkout Session created successfully!',
66 'sessionId' => $session['id']
67 );
68 }else{
69 $response = array(
70 'status' => 0,
71 'error' => array(
72 'message' => 'Checkout Session creation failed! '.$api_error
73 )
74 );
75 }
76}
77
78// Return response
79echo json_encode($response);
80
81?>