From 78d02a2392924d5d4a21206fb52f627251883af8 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Mon, 6 Mar 2023 11:59:03 +0700 Subject: fix --- src/pages/api/shop/finish-checkout.js | 35 +++++++++++++++++++---------------- src/pages/my/menu.jsx | 1 - src/pages/shop/cart.jsx | 5 ++++- src/pages/shop/checkout/[status].jsx | 27 +++++++++++++++++++++++++++ src/pages/shop/checkout/finish.jsx | 16 ---------------- 5 files changed, 50 insertions(+), 34 deletions(-) create mode 100644 src/pages/shop/checkout/[status].jsx delete mode 100644 src/pages/shop/checkout/finish.jsx (limited to 'src/pages') diff --git a/src/pages/api/shop/finish-checkout.js b/src/pages/api/shop/finish-checkout.js index 66874549..04e82118 100644 --- a/src/pages/api/shop/finish-checkout.js +++ b/src/pages/api/shop/finish-checkout.js @@ -25,12 +25,25 @@ export default async function handler(req, res) { 'Content-Type': 'application/json', Authorization: `Basic ${midtransAuthKey}` } - let midtransStatus = await axios.get(`${process.env.MIDTRANS_HOST}/v2/${orderName}/status`, { - headers: midtransHeaders - }) - midtransStatus = camelcaseObjectDeep(midtransStatus.data) - if (!midtransStatus?.orderId) { - return res.status(400).json({ error: 'Payment Not Found' }) + let midtransStatus = {} + try { + midtransStatus = await axios.get(`${process.env.MIDTRANS_HOST}/v2/${orderName}/status`, { + headers: midtransHeaders + }) + midtransStatus = camelcaseObjectDeep(midtransStatus.data) + } catch (error) { + console.log(error) + } + + let statusPayment = 'manual' + if (midtransStatus?.orderId) { + const transactionStatus = midtransStatus.transactionStatus + statusPayment = 'failed' + if (['capture', 'settlement'].includes(transactionStatus)) { + statusPayment = 'success' + } else if (transactionStatus == 'pending') { + statusPayment = 'pending' + } } const query = `name=${orderName.replaceAll('-', '/')}&limit=1` @@ -62,16 +75,6 @@ export default async function handler(req, res) { (product.price.price - product.price.priceDiscount) * product.quantity } - let statusPayment = '' - const transactionStatus = midtransStatus.transactionStatus - if (['capture', 'settlement'].includes(transactionStatus)) { - statusPayment = 'success' - } else if (transactionStatus == 'pending') { - statusPayment = 'pending' - } else { - statusPayment = 'failed' - } - const emailMessage = render( Customer Support - F.A.Q diff --git a/src/pages/shop/cart.jsx b/src/pages/shop/cart.jsx index 97f98843..7e78f215 100644 --- a/src/pages/shop/cart.jsx +++ b/src/pages/shop/cart.jsx @@ -5,7 +5,10 @@ const CartComponent = dynamic(() => import('@/lib/cart/components/Cart')) export default function Cart() { return ( - + ) diff --git a/src/pages/shop/checkout/[status].jsx b/src/pages/shop/checkout/[status].jsx new file mode 100644 index 00000000..bf184c0e --- /dev/null +++ b/src/pages/shop/checkout/[status].jsx @@ -0,0 +1,27 @@ +import BasicLayout from '@/core/components/layouts/BasicLayout' +import IsAuth from '@/lib/auth/components/IsAuth' +import FinishCheckoutComponent from '@/lib/checkout/components/FinishCheckout' +import { useRouter } from 'next/router' +import axios from 'axios' + +export async function getServerSideProps(context) { + const { order_id } = context.query + await axios.post( + `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/finish-checkout?orderName=${order_id}`, + {}, + { headers: context.req.headers } + ) + return { props: {} } +} + +export default function Finish() { + const router = useRouter() + + return ( + + + + + + ) +} diff --git a/src/pages/shop/checkout/finish.jsx b/src/pages/shop/checkout/finish.jsx deleted file mode 100644 index eb7631a0..00000000 --- a/src/pages/shop/checkout/finish.jsx +++ /dev/null @@ -1,16 +0,0 @@ -import BasicLayout from '@/core/components/layouts/BasicLayout' -import IsAuth from '@/lib/auth/components/IsAuth' -import FinishCheckoutComponent from '@/lib/checkout/components/FinishCheckout' -import { useRouter } from 'next/router' - -export default function Finish() { - const router = useRouter() - - return ( - - - - - - ) -} -- cgit v1.2.3