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