From 4459ed6326ec51777c44b9f655b204f62be956c8 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 31 Oct 2023 16:32:33 +0800 Subject: [PATCH 1/4] link to payment page --- src/pages/Payment/index.js | 13 +++++--- .../ListPanel/PendingPaymentTab.js | 30 +++++++++++++++---- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/pages/Payment/index.js b/src/pages/Payment/index.js index 544166f..28ab1bc 100644 --- a/src/pages/Payment/index.js +++ b/src/pages/Payment/index.js @@ -4,7 +4,7 @@ import Loadable from 'components/Loadable'; const MultiPaymentWindow = Loadable(React.lazy(() => import('./MultiPaymentWindow'))); // const FPS = Loadable(React.lazy(() => import('./FPS'))); import {useEffect, useState} from "react"; -import {useNavigate} from "react-router-dom"; +import {useNavigate, useLocation } from "react-router-dom"; import {paymentPath} from "auth/utils"; import { @@ -29,6 +29,7 @@ const Index = () => { const getAvailablePaymentUrl = "/api/payment/availability"; const getTransactionIdUrl = "/api/payment/transaction"; const navigate = useNavigate() + const location = useLocation(); // const local = {en:"en-us", zh:"zh-hk", cn:"zh-cn"}; const preferpaymentmethods = ['visa','mastercard','pps','creditcard','fps']; @@ -48,11 +49,15 @@ const Index = () => { const [confirmPayment, setConfirmPayment] = useState(false); useEffect(() => { - if(id > 0 ){ + if(id<0)return; + if(location.state.amount > 0 ){ + setTotalAmount(location.state.amount) + }else{ + //fake setTotalAmount(2000) - getAvailablePayment() - getTransactionId() } + getAvailablePayment() + getTransactionId() }, []); const handleClose = () => { diff --git a/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js b/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js index cc96764..78f3385 100644 --- a/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js +++ b/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js @@ -6,19 +6,20 @@ import { Button, Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material'; -import {FiDataGrid} from "components/FiDataGrid"; +import { FiDataGrid } from "components/FiDataGrid"; import * as DateUtils from "utils/DateUtils" import * as StatusUtils from "utils/statusUtils/PublicNoteStatusUtils"; -import {useNavigate} from "react-router-dom"; +import { useNavigate } from "react-router-dom"; // ==============================|| EVENT TABLE ||============================== // export default function SubmittedTab({ rows }) { const [selectedRowItems, setSelectedRowItems] = React.useState([]); const [isPopUp, setIsPopUp] = React.useState(false); + //const [amount, setAmount] = React.useState(0); const navigate = useNavigate() const handleDetailClick = (params) => () => { - navigate('/publicNotice/'+ params.id); + navigate('/publicNotice/' + params.id); }; const columns = [ @@ -93,6 +94,7 @@ export default function SubmittedTab({ rows }) { const getWindowContent = () => { var content = []; + let totalAmount = 0; const datas = rows?.filter((row) => selectedRowItems.includes(row.id) ); @@ -102,12 +104,30 @@ export default function SubmittedTab({ rows }) { 備註: {datas[i].remarks}

); + + totalAmount += datas[i].fee; } + content.push(<> + 總計金額: {totalAmount}

+ ); + //setAmount(totalAmount); return content; } function handleRowDoubleClick(params) { - navigate('/publicNotice/'+ params.id); + navigate('/publicNotice/' + params.id); + } + + function doPayment() { + setIsPopUp(false); + let totalAmount = 0; + const datas = rows?.filter((row) => + selectedRowItems.includes(row.id) + ); + for (var i = 0; i < datas?.length; i++) { + totalAmount += datas[i].fee; + } + navigate('/payment', { state: { amount: totalAmount } }); } return ( @@ -142,7 +162,7 @@ export default function SubmittedTab({ rows }) { - + From 6996a4c58a9dd20433fe28ba262382110f9db654 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 31 Oct 2023 16:49:47 +0800 Subject: [PATCH 2/4] fix bug --- src/pages/Payment/Card/index.js | 10 ++-------- src/pages/Payment/PaymentSuccess.js | 7 ++----- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/src/pages/Payment/Card/index.js b/src/pages/Payment/Card/index.js index afe5cff..3a5ca9a 100644 --- a/src/pages/Payment/Card/index.js +++ b/src/pages/Payment/Card/index.js @@ -40,7 +40,6 @@ const Index = () => { const [paymentData, setPaymentData] = React.useState({}); const [onReady, setOnReady] = React.useState(false); - const [redirecturl, setRedirectUrl] = React.useState(""); // const [paymentstatuscode, setPaymentstatuscode] = React.useState(""); // const [fpsqrcodeurl, setFpsqrcodeurl] = React.useState(""); // const pasgPath = 'https://fps.payapps.hkicl.com.hk'; //PRD @@ -59,15 +58,11 @@ const Index = () => { React.useEffect(() => { if (Object.keys(paymentData).length > 0){ + setOnReady(true); loadForm(); } }, [paymentData]); - React.useEffect(() => { - setOnReady(true); - }, [redirecturl]); - - const loadForm = () => { const timeoutdatetime = "2023-10-26T09:04:30Z[UTC]" const convertedDateString = timeoutdatetime.replace("[UTC]", ""); @@ -104,8 +99,7 @@ const Index = () => { "redirecturl": "" } */ - setRedirectUrl(responseData.redirecturl); - window.open(redirecturl); + window.open(responseData.redirecturl); } }); } diff --git a/src/pages/Payment/PaymentSuccess.js b/src/pages/Payment/PaymentSuccess.js index f7ad932..e7c3282 100644 --- a/src/pages/Payment/PaymentSuccess.js +++ b/src/pages/Payment/PaymentSuccess.js @@ -65,7 +65,7 @@ const Index = () => {
- 公共啟事: 付款 + 公共啟事:完成付款
@@ -73,10 +73,7 @@ const Index = () => {
- - - 公共啟事:完成付款 - + 付款成功 From 4c2ead054382c849b13bd12db909693bde2294f0 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 31 Oct 2023 16:53:06 +0800 Subject: [PATCH 3/4] fix bug --- src/pages/Payment/Card/index.js | 2 +- src/pages/Payment/FPS/FPS.js | 4 ++-- src/pages/Payment/index.js | 12 ++++++------ .../PublicNotice/ListPanel/PendingPaymentTab.js | 2 +- src/routes/PublicUserRoutes.js | 12 ++++++------ 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/pages/Payment/Card/index.js b/src/pages/Payment/Card/index.js index 3a5ca9a..e5ecb81 100644 --- a/src/pages/Payment/Card/index.js +++ b/src/pages/Payment/Card/index.js @@ -90,7 +90,7 @@ const Index = () => { }, // "locale":"", // "eserviceid":"", - "returnurl": window.location.hostname+"/payment/success" + "returnurl": window.location.hostname+"/paymentPage/success" }, onSuccess: function(responseData){ /* diff --git a/src/pages/Payment/FPS/FPS.js b/src/pages/Payment/FPS/FPS.js index 2dc6595..01f1024 100644 --- a/src/pages/Payment/FPS/FPS.js +++ b/src/pages/Payment/FPS/FPS.js @@ -162,10 +162,10 @@ const Index = () => { if (paymentstatuscode != "" && paymentstatuscode != "INPR" ){ if (paymentstatuscode === 'APPR') { const timestamp = Date.now(); - navigate('/payment/fps/ackpage', {state:{transactionDateTime:timestamp,transactionid:paymentData.transactionid,webtoken:paymentData.webtoken, paymentid:responseData.paymentdetail.paymentid} }); + navigate('/paymentPage/fps/ackpage', {state:{transactionDateTime:timestamp,transactionid:paymentData.transactionid,webtoken:paymentData.webtoken, paymentid:responseData.paymentdetail.paymentid} }); } else if (paymentstatuscode === 'CANC') { // window.top.location.href = paymentPath + payment.config.indexPagePath; - navigate('/payment'); + navigate('/paymentPage'); } else { // window.top.location.href = paymentPath + payment.config.errPagePath; alert("ERROR") diff --git a/src/pages/Payment/index.js b/src/pages/Payment/index.js index 28ab1bc..a0ad2d5 100644 --- a/src/pages/Payment/index.js +++ b/src/pages/Payment/index.js @@ -83,18 +83,18 @@ const Index = () => { // let webtoken = ""; if(selectedPaymentMethod === "FPS"){ - navigate('/payment/fps', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken} }); + navigate('/paymentPage/fps', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken} }); // navigate('/payment/fps', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken} }); }else if(selectedPaymentMethod ==="Visa"){ - navigate('/payment/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"Visa", paymentMethod:"02,BCMP,CreditCard"} }); + navigate('/paymentPage/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"Visa", paymentMethod:"02,BCMP,CreditCard"} }); }else if(selectedPaymentMethod ==="Mastercard"){ - navigate('/payment/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"Mastercard", paymentMethod:"02,BCMP,CreditCard"} }); + navigate('/paymentPage/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"Mastercard", paymentMethod:"02,BCMP,CreditCard"} }); }else if(selectedPaymentMethod ==="UnionPay" ){ - navigate('/payment/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"UnionPay", paymentMethod:"03,BCMP,CreditCard"} }); + navigate('/paymentPage/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"UnionPay", paymentMethod:"03,BCMP,CreditCard"} }); }else if(selectedPaymentMethod ==="JCB"){ - navigate('/payment/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"JCB", paymentMethod:"03,BCMP,CreditCard"} }); + navigate('/paymentPage/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"JCB", paymentMethod:"03,BCMP,CreditCard"} }); }else if(selectedPaymentMethod ==="PPS"){ - navigate('/payment/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"PPS", paymentMethod:"01,PPSB,PPS"} }); + navigate('/paymentPage/card', {state:{amount:totalAmount,transactionid:transactionData.transactionid,webtoken:transactionData.webtoken, type:"PPS", paymentMethod:"01,PPSB,PPS"} }); } } diff --git a/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js b/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js index 78f3385..d63db70 100644 --- a/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js +++ b/src/pages/PublicNotice/ListPanel/PendingPaymentTab.js @@ -127,7 +127,7 @@ export default function SubmittedTab({ rows }) { for (var i = 0; i < datas?.length; i++) { totalAmount += datas[i].fee; } - navigate('/payment', { state: { amount: totalAmount } }); + navigate('/paymentPage', { state: { amount: totalAmount } }); } return ( diff --git a/src/routes/PublicUserRoutes.js b/src/routes/PublicUserRoutes.js index eaa9b94..16158c9 100644 --- a/src/routes/PublicUserRoutes.js +++ b/src/routes/PublicUserRoutes.js @@ -67,27 +67,27 @@ const PublicDashboard = { element: }, { - path: 'payment', + path: 'paymentPage', element: }, { - path: 'payment/fps', + path: 'paymentPage/fps', element: }, { - path: 'payment/card', + path: 'paymentPage/card', element: }, { - path: 'payment/success', + path: 'paymentPage/success', element: }, { - path: 'payment/fps/fpscallback', + path: 'paymentPage/fps/fpscallback', element: }, { - path: 'payment/fps/ackpage', + path: 'paymentPage/fps/ackpage', element: }, ] From 85fe52e58ee2a4626ed473fdcbca74cd0fc98cb4 Mon Sep 17 00:00:00 2001 From: anna Date: Tue, 31 Oct 2023 16:55:35 +0800 Subject: [PATCH 4/4] fix bug --- src/pages/Payment/index.js | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/pages/Payment/index.js b/src/pages/Payment/index.js index a0ad2d5..0eec1f3 100644 --- a/src/pages/Payment/index.js +++ b/src/pages/Payment/index.js @@ -50,12 +50,9 @@ const Index = () => { useEffect(() => { if(id<0)return; - if(location.state.amount > 0 ){ - setTotalAmount(location.state.amount) - }else{ - //fake - setTotalAmount(2000) - } + let amount = location.state?.amount??2000; + + setTotalAmount(amount) getAvailablePayment() getTransactionId() }, []);