// material-ui
import {
Grid,
Typography,
Stack,
Box
// Button,
// FormLabel,
} from '@mui/material';
import * as React from "react";
import * as HttpUtils from "utils/HttpUtils";
import * as UrlUtils from "utils/ApiPathConst";
//import { useNavigate } from 'react-router-dom';
import { paymentPath } from "auth/utils";
import * as DateUtils from "utils/DateUtils"
import Loadable from 'components/Loadable';
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));
const PaymentDetails = Loadable(React.lazy(() => import('./Details_Public/PaymentDetails')));
const DataGrid = Loadable(React.lazy(() => import('./Details_Public/DataGrid')));
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
import {FormattedMessage} from "react-intl";
const BackgroundHead = {
backgroundImage: `url(${titleBackgroundImg})`,
width: '100%',
height: '100%',
backgroundSize: 'contain',
backgroundRepeat: 'no-repeat',
backgroundColor: '#0C489E',
backgroundPosition: 'right'
}
// ==============================|| DASHBOARD - DEFAULT ||============================== //
const Index = () => {
//const navigate = useNavigate()
const [responeData, setResponeDataData] = React.useState({});
const [paymentData, setPaymentData] = React.useState({});
const [itemList, setItemList] = React.useState([]);
const [paymentId, setPaymentId] = React.useState("");
const [transactionData, setTransactionData] = React.useState({});
// const [transactionDate, setTransactionDate] = React.useState("");
// const [transactionTime, setTransactionTime] = React.useState("");
const [onReady, setOnReady] = React.useState(false);
const updatePaymentApi = "/api/payment/updatepayment";
const paymentStatusApi = "/api/payment/status/";
React.useEffect(() => {
loadForm();
}, []);
React.useEffect(() => {
console.log(responeData)
if (Object.keys(responeData).length > 0) {
setTransactionData(responeData)
}
}, [responeData]);
React.useEffect(() => {
console.log(transactionData)
if (Object.keys(transactionData).length > 0) {
setOnReady(true);
}
}, [transactionData]);
const loadForm = () => {
// const date = new Date();
// const trnDate = date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear();
// const trnTime = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
// setTransactionDate(trnDate)
// setTransactionTime(trnTime)
const params = new URLSearchParams(window.location.search);
let transactionid = params.get("TRANSACTION_ID")
let receipt_token = params.get("RECEIPT_TOKEN").replace("%3D", "=")
HttpUtils.post({
url: paymentPath + updatePaymentApi,
params: {
"transactionid": transactionid,
"receipttoken": receipt_token,
},
onSuccess: function () {
// {
// "amount": 999.99,
// "currencycode": "HKD",
// "paymentdetail": {
// "attemptno": 1,
// "channel": "MobileWallet",
// "paymentid": "C202310268000681",
// "paymentmethod": "04",
// "result": {
// "canretry": "Y",
// "description": "CANC - Cancelled by user or Payment Server.",
// "paymentstatuscode": "CANC",
// "rejectreasoncode": "Payment Cancelled. [PAY-E-9022]"
// },
// "subtype": "FPS",
// "time": "2023-10-26T09:02:17Z[UTC]"
// },
// "transactionid": "20231026170103921"
// }
// )
HttpUtils.post({
url: paymentPath + paymentStatusApi + transactionid,
params: {
"apprefid": transactionid,
"webtoken": localStorage.getItem("webtoken"),
},
onSuccess: function (responseData) {
setResponeDataData(responseData)
if (responseData.paymentdetail?.result?.paymentstatuscode === "APPR") {
localStorage.removeItem("webtoken");
localStorage.removeItem("transactionid");
}
HttpUtils.post({
url: UrlUtils.PAYMENT_SAVE,
params: {
id: localStorage.getItem("paymentId"),
transNo: responseData.transactionid,
transDateTime: responseData.paymentdetail.time.replace("[UTC]", ""),
egisRefNo: responseData.paymentdetail.paymentid,
status: responseData.paymentdetail.result.paymentstatuscode,
payload: responseData
},
onSuccess: function (responseData2) {
responseData2.data["transDateStr"] = DateUtils.dateFormat(responseData2.data.transDateTime, "DD/MM/YYYY");
responseData2.data["transTimeStr"] = DateUtils.dateFormat(responseData2.data.transDateTime, "HH:mm:ss");
setItemList(responseData2.paymentItemList)
setPaymentData(responseData2.data);
localStorage.removeItem("paymentId");
setPaymentId(responseData2.id)
}
});
}
});
}
});
}
const doPrint = () => {
// window.print();
HttpUtils.fileDownload({
url: UrlUtils.GEN_PAYMENT_RECEIPT+"/"+paymentId,
});
};
return (
!onReady ?