Browse Source

update payment

master
Alex Cheung 1 year ago
parent
commit
5e99096fc3
6 changed files with 326 additions and 179 deletions
  1. +1
    -1
      src/pages/Payment/Card/index.js
  2. +248
    -116
      src/pages/Payment/FPS/AckPage.js
  3. +52
    -45
      src/pages/Payment/FPS/FPS.js
  4. +19
    -12
      src/pages/Payment/MultiPaymentWindow.js
  5. +5
    -5
      src/pages/Payment/PaymentCallback.js
  6. +1
    -0
      src/pages/Payment/index.js

+ 1
- 1
src/pages/Payment/Card/index.js View File

@@ -94,7 +94,7 @@ const Index = () => {
},
// "locale":"<locale>",
// "eserviceid":"<eserviceid>",
"returnurl": "http://"+window.location.hostname+"/paymentPage/callback"
"returnurl": "https://"+window.location.hostname+"/paymentPage/callback"
},
///{state:{transactionid:paymentData.transactionid,webtoken:paymentData.webtoken} }
onSuccess: function(responseData){


+ 248
- 116
src/pages/Payment/FPS/AckPage.js View File

@@ -3,8 +3,9 @@ import {
Grid,
Typography,
Stack,
Box
// Button,
FormLabel,
// FormLabel,
} from '@mui/material';
import * as React from "react";
import * as HttpUtils from "utils/HttpUtils";
@@ -16,6 +17,8 @@ import {paymentPath} from "auth/utils";

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'
const BackgroundHead = {
@@ -39,11 +42,12 @@ const AckPage = () => {
const [responeData, setResponeDataData] = React.useState({});

const [transactionData, setTransactionData] = React.useState({});
const [transactionDate, setTransactionDate] = React.useState("");
const [transactionTime, setTransactionTime] = React.useState("");
// const [transactionDate, setTransactionDate] = React.useState("");
// const [transactionTime, setTransactionTime] = React.useState("");
const [onReady, setOnReady] = React.useState(false);
const paymentStatusApi = "/api/payment/status/";


React.useEffect(() => {
console.log (location.state)
if(Object.keys(location.state).length > 0){
@@ -69,7 +73,7 @@ const AckPage = () => {

React.useEffect(() => {
console.log(responeData)
if(Object.keys(responeData).length > 0 && fpsmerchanttimeoutdatetime!=""){
if(Object.keys(responeData).length > 0){
setTransactionData(responeData)
}
}, [responeData]);
@@ -83,20 +87,45 @@ const AckPage = () => {
}, [transactionData]);

const loadForm = () => {
const dateTime = paymentData.transactionDateTime;
const date = new Date(dateTime);
const trnDate = date.getDate()+"/"+date.getMonth()+"/"+date.getFullYear();
const trnTime = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
setTransactionDate(trnDate)
setTransactionTime(trnTime)
// const dateTime = paymentData.transactionDateTime;
// const date = new Date(dateTime);
// const trnDate = date.getDate()+"/"+date.getMonth()+"/"+date.getFullYear();
// const trnTime = date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();
// setTransactionDate(trnDate)
// setTransactionTime(trnTime)
let transactionid = localStorage.getItem("transactionid")
let webtoken = localStorage.getItem("webtoken")

HttpUtils.post({
url: paymentPath+paymentStatusApi+paymentData.transactionid,
url: paymentPath+paymentStatusApi+transactionid,
params:{
"apprefid": paymentData.transactionid,
"webtoken": paymentData.webtoken,
"apprefid": transactionid,
"webtoken": 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: transactionData.transicationId,
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");
}
});
}
});
@@ -127,120 +156,223 @@ const AckPage = () => {
!onReady ?
<LoadingComponent />
:
(
<Grid container sx={{ minHeight: '110vh', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" >
<Grid item xs={12} width="100%">
<div style={BackgroundHead} width="100%">
<Stack direction="row" height='70px'>
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:FPS付款</Typography>
</Stack>
</div>
</Grid>
{/*row 1*/}
<Grid item xs={12} md={12} >
<Grid container justifyContent="flex-start" alignItems="center" >
<center>
<Grid item xs={12} md={12} >

<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}>
Your application and payment have been received
</Typography>

<Grid container>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
Transaction Reference No:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
Transaction Date:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionDate+" (DD/MM/YYYY)"}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
Transaction Time:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionTime+" (HH:MI:SS)"}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
EGIS Reference No:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionData.transactionid}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
Payment Amount
</FormLabel>
transactionData.paymentdetail?.result?.paymentstatuscode === "APPR" ?
(
<Grid container sx={{ minHeight: '110vh', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" >
<Grid item xs={12} width="100%">
<div style={BackgroundHead} width="100%">
<Stack direction="row" height='70px'>
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款成功</Typography>
</Stack>
</div>
</Grid>
{/*row 1*/}
<Grid item xs={12} md={12} >
<Grid container justifyContent="flex-start" alignItems="center" >
<center>
<Grid item xs={12} md={12} >

<Typography variant="h3" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "center" }}>
您的申請和付款已收到
</Typography>

<Grid container>
<Grid item xs={12} md={12} sx={{ textAlign: "center" }}>
<Grid container justifyContent="center" spacing={2} sx={{ p: 2 }} alignitems="stretch" >
<Grid item xs={12} md={5} sx={{ pt: 1, pb: 2 }} style={{ height: '100%' }}>
<Box xs={12} md={12} sx={{ p: 4, border: '3px solid #eee', borderRadius: '10px' }} >
<DataGrid
recordList={itemList}
/>
</Box>
</Grid>
<Grid item xs={12} md={5} sx={{ pt: 2 }} style={{ height: '100%' }}>
<Box xs={12} md={12} sx={{ p: 4, border: '3px solid #eee', borderRadius: '10px' }} >
<PaymentDetails
formData={paymentData}
style={{
display: "flex",
height: "100%",
flex: 1
}}
/>
</Box>
</Grid>
</Grid>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{"HK$ "+transactionData.amount}
</FormLabel>
{/* <Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
交易參考號:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{"P" + transactionData.transactionid}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
交易日期:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionDate + " (DD/MM/YYYY)"}
</FormLabel>
</Grid>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
Payment Method:
</FormLabel>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
交易時間:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionTime + " (HH:MI:SS)"}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionData.paymentdetail.subtype}
</FormLabel>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
EGIS 參考號:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionData.transactionid}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
支付金額
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{"HK$ " + transactionData.amount}
</FormLabel>
</Grid>
</Grid>
</Grid>
<Grid item xs={12} md={12}>
<Grid container >
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
付款方式:
</FormLabel>
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{transactionData.paymentdetail.subtype ?? (transactionData.paymentdetail.paymentmethod === "01" ? "PPS" : "")}
</FormLabel>
</Grid>
</Grid>
</Grid> */}
</Grid>
</Grid>
</Grid>
</center>
</center>
</Grid>
</Grid>
{/*row 2*/}
</Grid >
) :
(transactionData.paymentdetail?.result?.paymentstatuscode === "CANC" ?
<Grid container sx={{ minHeight: '110vh', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" >
<Grid item xs={12} width="100%">
<div style={BackgroundHead} width="100%">
<Stack direction="row" height='70px'>
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款取消</Typography>
</Stack>
</div>
</Grid>
{/*row 1*/}
<Grid item xs={12} md={12} >
<Grid container justifyContent="flex-start" alignItems="center" >
<center>
<Grid item xs={12} md={8} >
<Typography variant="h5" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}>
付款取消訊息:
<br /><br />
您的付款已被取消。我們收到了您的付款請求,但由於某些原因,付款無法完成。請注意以下事項:
<br /><br />
如果您主動取消了支付,請確認並確保取消是您的意願。
<br />
如果付款被取消是由於系統問題或其他原因,請您嘗試以下解決方法:
<br /><br />
檢查您的支付帳戶是否有任何異常或限制。
<br />
確保您的付款資訊準確無誤。
<br />
檢查您的網路連線是否正常。
<br /><br />
如果您需要進一步的協助或有任何疑問,請隨時與我們聯繫,我們將盡快解決您的付款問題。謝謝!
</Typography>
</Grid>
</center>
</Grid>
</Grid>
</Grid>
{/*row 2*/}
</Grid >
)
{/*row 2*/}
</Grid >
:
<Grid container sx={{ minHeight: '110vh', backgroundColor: '#fff' }} direction="column" justifyContent="flex-start" alignItems="center" >
<Grid item xs={12} width="100%">
<div style={BackgroundHead} width="100%">
<Stack direction="row" height='70px'>
<Typography ml={15} color='#FFF' variant="h4" sx={{ pt: 2 }}>公共啟事:付款失敗</Typography>
</Stack>
</div>
</Grid>
{/*row 1*/}
<Grid item xs={12} md={12} >
<Grid container justifyContent="flex-start" alignItems="center" >
<center>
<Grid item xs={12} md={8} >

<Typography variant="h5" sx={{ ml: 8, mt: 4, mr: 8, textAlign: "left" }}>
付款失敗訊息:
<br /><br />
親愛的用戶,很遺憾地告訴您,您的付款操作未成功。我們在處理您的付款時遇到了問題。請您仔細檢查以下事項:
<br /><br />
您的支付帳戶餘額是否足夠。
<br />
您提供的付款資訊是否準確無誤。
<br />
請檢查您的網路連線是否正常。
<br /><br />
如果您已確認以上問題無誤,但付款失敗,請您嘗試以下解決方法:
<br /><br />
嘗試使用其他付款方式進行付款。
<br />
檢查您的支付帳戶是否有異常或限制。
<br />
聯絡我們的客服人員尋求協助。
<br /><br />
如果您需要進一步的協助或有任何疑問,請隨時與我們聯繫。非常抱歉給您帶來不便,我們將盡快解決您的付款問題。謝謝!
</Typography>

</Grid>
</center>
</Grid>
</Grid>
{/*row 2*/}
</Grid >
)
);
};



+ 52
- 45
src/pages/Payment/FPS/FPS.js View File

@@ -17,6 +17,7 @@ import Loadable from 'components/Loadable';
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));

import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
import { object } from 'prop-types';
const BackgroundHead = {
backgroundImage: `url(${titleBackgroundImg})`,
width: '100%',
@@ -56,7 +57,7 @@ const Index = () => {
const [time, setTime] = React.useState(0);

React.useEffect(() => {
console.log (location.state)
// console.log (location.state)
if(Object.keys(location.state).length > 0){
console.log (location.state)
setLocationData(location.state)
@@ -64,7 +65,7 @@ const Index = () => {
}, []);

React.useEffect(() => {
console.log (locationData)
// console.log (locationData)
if (Object.keys(locationData).length > 0){
setPaymentData(locationData)
// loadForm();
@@ -72,21 +73,21 @@ const Index = () => {
}, [locationData]);

React.useEffect(() => {
console.log (paymentData)
// console.log (paymentData)
if (Object.keys(paymentData).length > 0){
loadForm();
}
}, [paymentData]);

React.useEffect(() => {
console.log(responeData)
// console.log(responeData)
if(Object.keys(responeData).length > 0 && fpsmerchanttimeoutdatetime!=""){
setFpsTransctionData(responeData)
}
}, [responeData]);

React.useEffect(() => {
console.log(fpsTransctionData)
// console.log(fpsTransctionData)
if(Object.keys(fpsTransctionData).length > 0 ){
setOnReady(true);
currentTimer.current = setInterval(() => {
@@ -152,42 +153,45 @@ const Index = () => {
}

const getPaymentStatus = () => {
HttpUtils.post({
url: paymentPath+paymentStatusApi+paymentData.transactionid,
params:{
"apprefid": paymentData.transactionid,
"webtoken": paymentData.webtoken,
},
onSuccess: function(responseData){
const paymentstatuscode = responseData.paymentdetail.result.paymentstatuscode;
if (paymentstatuscode != "" && paymentstatuscode != "INPR" ){
if (paymentstatuscode === 'APPR') {
const timestamp = Date.now();
navigate('/paymentPage/fps/ackpage', {state:{transactionDateTime:timestamp,transactionid:paymentData.transactionid,webtoken:paymentData.webtoken} });
} else if (paymentstatuscode === 'CANC') {
// window.top.location.href = paymentPath + payment.config.indexPagePath;
navigate('/paymentPage');
} else {
// window.top.location.href = paymentPath + payment.config.errPagePath;
alert("ERROR")
if(object.keys(paymentData).length > 0){
HttpUtils.post({
url: paymentPath+paymentStatusApi+paymentData.transactionid,
params:{
"apprefid": paymentData.transactionid,
"webtoken": paymentData.webtoken,
},
onSuccess: function(responseData){
const paymentstatuscode = responseData.paymentdetail.result.paymentstatuscode;
if (paymentstatuscode != "" && paymentstatuscode != "INPR" ){
if (paymentstatuscode === 'APPR') {
const timestamp = Date.now();
navigate('/paymentPage/fps/ackpage', {state:{transactionDateTime:timestamp,transactionid:paymentData.transactionid} });
} else if (paymentstatuscode === 'CANC') {
const timestamp = Date.now();
navigate('/paymentPage/fps/ackpage', {state:{transactionDateTime:timestamp,transactionid:paymentData.transactionid} });
} else {
// window.top.location.href = paymentPath + payment.config.errPagePath;
alert("ERROR")
}
}
},
onError: function(){
cancelPayment()
// clearInterval(currentTimer.current);
}
},
onError: function(){
cancelPayment()
// clearInterval(currentTimer.current);
}
});
});
}
};
React.useEffect(() => {
const timeOutDate = new Date(fpsmerchanttimeoutdatetime);
const currentTime = new Date;
console.log(time)
console.log(timeOutDate)
console.log(currentTime)
console.log(timeOutDate.getTime()-currentTime.getTime())
setTimeDownCount(timeOutDate.getTime()-currentTime.getTime())
const timedowncount = Math.round((timeOutDate.getTime() - currentTime.getTime()) / 1000);
setTimeDownCount(timedowncount)
// console.log(time)
// console.log(timeOutDate)
// console.log(currentTime)
// console.log(timeOutDate.getTime()-currentTime.getTime())
getPaymentStatus();
if (timeOutDate.getTime()<currentTime.getTime()){
console.log("stop");
@@ -197,17 +201,20 @@ const Index = () => {
},[time])

const cancelPayment = ()=>{
HttpUtils.post({
url: paymentPath+cancelPaymentUrl,
params:{
"transactionid": paymentData.transactionid,
"webtoken": paymentData.webtoken,
"paymentid": fpsTransctionData.paymentid
},
onSuccess: function(){
navigate("/dashboard");
}
});
if (object.keys(paymentData).length>0){
HttpUtils.post({
url: paymentPath+cancelPaymentUrl,
params:{
"transactionid": paymentData.transactionid,
"webtoken": paymentData.webtoken,
"paymentid": fpsTransctionData.paymentid
},
onSuccess: function(){
const timestamp = Date.now();
navigate('/paymentPage/fps/ackpage', {state:{transactionDateTime:timestamp,transactionid:paymentData.transactionid} });
}
});
}
}

return (


+ 19
- 12
src/pages/Payment/MultiPaymentWindow.js View File

@@ -21,6 +21,7 @@ import { useFormik, FormikProvider } from 'formik';
import * as yup from 'yup';
import Loadable from 'components/Loadable';
const LoadingComponent = Loadable(React.lazy(() => import('pages/extra-pages/LoadingComponent')));
import * as FormatUtils from "utils/FormatUtils";

import VisaIcon from "assets/images/icons/visacard.svg";
import MasterIcon from "assets/images/icons/mastercard.svg";
@@ -45,14 +46,26 @@ const MultiPaymentWindow = (props) => {
if(Object.keys(props.transactionData).length > 0){
setLoadtTransactionData(props.transactionData)
}
}, [props.transactionData]);
}, []);

// useEffect(() => {
// console.log(props.availableMethods)
// if(props.availableMethods.length > 0){
// setLoadAvailableMethodData(props.availableMethods)
// }
// }, [props.availableMethods]);

useEffect(() => {
console.log(props.availableMethods)
if(props.availableMethods.length > 0){
if(Object.keys(loadtTransactionData).length > 0){
setTransactionData(loadtTransactionData)
}
}, [loadtTransactionData]);
useEffect(() => {
if(Object.keys(transactionData).length > 0&&props.availableMethods.length > 0){
setLoadAvailableMethodData(props.availableMethods)
}
}, [props.availableMethods]);
}, [transactionData]);

useEffect(() => {
if(loadAvailableMethodData.length > 0){
@@ -60,17 +73,11 @@ const MultiPaymentWindow = (props) => {
}
}, [loadAvailableMethodData]);

useEffect(() => {
if(Object.keys(loadtTransactionData).length > 0){
setTransactionData(loadtTransactionData)
}
}, [loadtTransactionData]);

useEffect(() => {
if(availableMethodData.length > 0 && Object.keys(transactionData).length > 0){
setOnReady(true)
}
}, [availableMethodData,transactionData]);
}, [availableMethodData]);

useEffect(() => {
console.log(paymentMethod)
@@ -117,7 +124,7 @@ const MultiPaymentWindow = (props) => {
</Grid>
<Grid item>
<FormLabel sx={{ fontSize: "16px", color: "#000000", textAlign: "center" }}>
{"HK$ "+props.totalAmount}
{"HK$ "+FormatUtils.currencyFormat(props.totalAmount)}
</FormLabel>
</Grid>
</Grid>


+ 5
- 5
src/pages/Payment/PaymentCallback.js View File

@@ -65,11 +65,11 @@ const Index = () => {
}, [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 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", "=")


+ 1
- 0
src/pages/Payment/index.js View File

@@ -71,6 +71,7 @@ const Index = () => {
// handleReset()
setOpen(false);
getTransactionId()
getAvailablePayment()
};

const paymentClick = () => {


Loading…
Cancel
Save