// 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 ? : transactionData.paymentdetail?.result?.paymentstatuscode === "APPR" ? (
{/*row 1*/} 您的申請和付款已收到 {/*row 2*/}
) : (transactionData.paymentdetail?.result?.paymentstatuscode === "CANC" ?
{/*row 1*/}
付款取消訊息:

您的付款已被取消。我們收到了您的付款請求,但由於某些原因,付款無法完成。請注意以下事項:

如果您主動取消了支付,請確認並確保取消是您的意願。
如果付款被取消是由於系統問題或其他原因,請您嘗試以下解決方法:

檢查您的支付帳戶是否有任何異常或限制。
確保您的付款資訊準確無誤。
檢查您的網路連線是否正常。

如果您需要進一步的協助或有任何疑問,請隨時與我們聯繫,我們將盡快解決您的付款問題。謝謝!
{/*row 2*/}
:
{/*row 1*/}
付款失敗訊息:

親愛的用戶,很遺憾地告訴您,您的付款操作未成功。我們在處理您的付款時遇到了問題。請您仔細檢查以下事項:

您的支付帳戶餘額是否足夠。
您提供的付款資訊是否準確無誤。
請檢查您的網路連線是否正常。

如果您已確認以上問題無誤,但付款失敗,請您嘗試以下解決方法:

嘗試使用其他付款方式進行付款。
檢查您的支付帳戶是否有異常或限制。
聯絡我們的客服人員尋求協助。

如果您需要進一步的協助或有任何疑問,請隨時與我們聯繫。非常抱歉給您帶來不便,我們將盡快解決您的付款問題。謝謝!
{/*row 2*/}
) ); }; export default Index;