PHP Classes

File: pizzerine/src/components/Checkout/Checkout.js

Recommend this page to a friend!
  Classes of Hillary Kollan   React Laravel Stripe MailJet Pizza Ordering   pizzerine/src/components/Checkout/Checkout.js   Download  
File: pizzerine/src/components/Checkout/Checkout.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: React Laravel Stripe MailJet Pizza Ordering
Web application to process orders of Pizza
Author: By
Last change:
Date: 1 year ago
Size: 3,472 bytes
 

Contents

Class file image Download
import React, { useEffect, useState } from 'react' import "./Checkout.css"; import { useNavigate } from 'react-router-dom'; import settings from '../../Helpers/Url'; import axios from 'axios'; import "../Admin/Admin.css" import { useElements, useStripe, CardElement } from '@stripe/react-stripe-js'; export default function Checkout() { let [checkOutResponse, setCheckOutResponse] = useState(""); let [creditCardDetails, setCreditCardDetails] = useState([]); const stripe = useStripe(); const elements = useElements(); let checkoutItems = JSON.parse(localStorage.getItem('pizzeria.checkout')); let navigate = useNavigate(); useEffect(() => { if(!checkoutItems){ setCheckOutResponse("No Pizza Orders Made, you will be redirected to the menu page shortly"); setTimeout(function(){ navigate('/menu'); }, 3000); } }, []) async function postData(e){ e.preventDefault() const {error, paymentMethod} = await stripe.createPaymentMethod({ type:"card", card: elements.getElement(CardElement) }) console.log(creditCardDetails); if(!error){ try { const {id} = paymentMethod const paymentResponse = await sendPayment({"stripeToken":id, "order_id":checkoutItems.order_id, "price":checkoutItems.price}); } catch (error) { console.log(error); setCheckOutResponse(error) } } } async function sendPayment(params) { const baseurl = `${settings.baseUrl}/pizza_order/pay` const apiData = params; await axios.post(baseurl, apiData, {headers:settings.headers}) .then((response) => { if(response.data.responseCode === '200'){ const apiResponseMessage = response.data.responseMessage; console.log(apiResponseMessage); setCheckOutResponse(apiResponseMessage); setTimeout(function(){ navigate('/menu'); }, 2000); }else{ console.log(response.data.responseMessage); setCheckOutResponse(response.data.responseMessage); } }) } return ( <div> <p style={{color: "red"}}>{checkOutResponse}</p> <div className="container align-items-center"> <div className="row"> <div className="col-md-6 col-md-offset-3"> <div className="panel panel-default credit-card-box"> <div className="panel-heading display-table" > <div className="row display-tr" > <h3 className="panel-title display-td" >Checkout(Payment Details)</h3> <img className="pull-right" src={settings.iconUrl + '/accepted_cards.png'} /> </div> </div> <div className="panel-body"> <form onSubmit={postData} style={{ maxWidth: 400 }}> <CardElement /> <button>Pay({checkoutItems.price.toFixed(2)})</button> </form> </div> </div> </div> </div> </div> </div> ) }