// 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 FpsIcon from "assets/images/icons/fps.svg"; // import { useLocation } from 'react-router-dom'; // import {paymentPath} from "auth/utils"; // import {poll} from "utils/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,useIntl} from "react-intl"; const BackgroundHead = { backgroundImage: `url(${titleBackgroundImg})`, width: '100%', height: '100%', backgroundSize: 'contain', backgroundRepeat: 'no-repeat', backgroundColor: '#0C489E', backgroundPosition: 'right' } // ==============================|| DASHBOARD - DEFAULT ||============================== // const Fpscallback = () => { // const navigate = useNavigate() // const location = useLocation(); // const [locationData, setLocationData] = React.useState({}); const [paymentData, setPaymentData] = React.useState({}); const [responeData, setResponeDataData] = 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 paymentStatusApi = "/api/payment/status/"; const [onDownload, setOnDownload] = React.useState(false); const intl = useIntl(); const { locale } = intl; React.useEffect(() => { loadForm(); }, []); React.useEffect(() => { console.log(responeData) if(Object.keys(responeData).length > 0){ setTransactionData(responeData) } }, [responeData]); React.useEffect(() => { // console.log(paymentData) console.log(transactionData) if(Object.keys(transactionData).length > 0 ){ setOnReady(true); } }, [transactionData]); const loadForm = () => { const params = new URLSearchParams(window.location.search); let transactionid = params.get("TRANSACTION_ID") let webtoken = params.get("WEB_TOKEN") let paymentId = params.get("PAYMENT_ID") paymentId = paymentId.split('?is_successful')[0]; console.log(transactionid) console.log(webtoken) console.log(paymentId) HttpUtils.post({ url: UrlUtils.PAYMENT_CALLBACK_STATUS_API, params:{ "apprefid": transactionid, "webtoken": webtoken, "paymentId": paymentId, "transactionid":Number(transactionid) }, onSuccess: function(responseData){ setResponeDataData(responseData) if (responseData.paymentdetail?.result?.paymentstatuscode === "APPR") { localStorage.removeItem("webtoken"); localStorage.removeItem("transactionid"); } responseData.data["transDateStr"] = DateUtils.dateFormat(responseData.data.transDateTime, "DD/MM/YYYY"); responseData.data["transTimeStr"] = DateUtils.dateFormat(responseData.data.transDateTime, "HH:mm:ss"); setResponeDataData(responseData.transactionData) setItemList(responseData.paymentItemList) setPaymentData(responseData.data); } }); // const responseData = { // "amount": 999.99, // "currencycode": "HKD", // "paymentdetail": { // "attemptno": 1, // "channel": "MobileWallet", // "paymentid": "C202310268000681", // "paymentmethod": "04", // "result": { // "canretry": "Y", // "description": "APPR - Cancelled by user or Payment Server.", // "paymentstatuscode": "APPR", // "rejectreasoncode": "Payment Cancelled. [PAY-E-9022]" // }, // "subtype": "FPS", // "time": "2023-10-26T09:02:17Z" // }, // "transactionid": "test0001" // } // setResponeDataData(responseData) // HttpUtils.post({ // url: UrlUtils.PAYMENT_SAVE, // params: { // id: paymentId, // transNo: responseData.transactionid, // transDateTime: new Date(responseData.paymentdetail.time).toISOString(), // 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"); // } // }); } const doPrint = () => { const params = new URLSearchParams(window.location.search); // window.print(); setOnDownload(true) const local = locale HttpUtils.fileDownload({ url: UrlUtils.GEN_PAYMENT_RECEIPT+"/"+params.get("PAYMENT_ID")+"/"+local, onResponse:()=>{ setOnDownload(false) }, onError:()=>{ setOnDownload(false) } }); }; 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 Fpscallback;