Browse Source

add payment message with locale

master
Alex Cheung 1 year ago
parent
commit
a81c18d88c
3 changed files with 52 additions and 16 deletions
  1. +36
    -5
      src/pages/Payment/MultiPaymentWindow.js
  2. +9
    -7
      src/pages/Payment/index.js
  3. +7
    -4
      src/pages/Proof/Payment/Pay.js

+ 36
- 5
src/pages/Payment/MultiPaymentWindow.js View File

@@ -47,17 +47,18 @@ const MultiPaymentWindow = (props) => {
const [jCBClass, setJCBClass] = useState("");
const [unionPayClass, setUnionPayClass] = useState("");
const [pPSClass, setPPSlass] = useState("");
const [filteredPaymentMethod, setFilteredPaymentMethod] = useState([]);
// const [onReady, setOnReady] = useState(false);

useEffect(() => {
console.log(props.transactionData)
// console.log(props.transactionData)
if(Object.keys(props.transactionData).length > 0){
setLoadtTransactionData(props.transactionData)
}
}, [props.transactionData]);

useEffect(() => {
console.log(props.availableMethods)
// console.log(props.availableMethods)
if(props.availableMethods.length > 0){
setLoadAvailableMethodData(props.availableMethods)
}
@@ -89,9 +90,20 @@ const MultiPaymentWindow = (props) => {

useEffect(() => {
console.log(paymentMethod)
// const subtype = (paymentMethod === "Visa" || paymentMethod === "MasterCard" || paymentMethod === "JCB" || paymentMethod === "UnionPay") ? "CreditCard" : paymentMethod;
// const filteredPaymentMethod = availableMethodData.filter(obj => obj.subtype === subtype);
const filteredPaymentMethod = availableMethodData.filter(obj => {
if (obj.supportedcard && obj.supportedcard.includes(paymentMethod)) {
return obj.subtype === "CreditCard";
}
return obj.subtype === paymentMethod;
});
console.log(filteredPaymentMethod)
setFilteredPaymentMethod(filteredPaymentMethod);

setFpsClass(paymentMethod == "FPS" || paymentMethod == "" ? "" : "grayscale")
setVisaClass(paymentMethod == "Visa" || paymentMethod == "" ? "" : "grayscale")
setMastercardClass(paymentMethod == "Mastercard" || paymentMethod == "" ? "" : "grayscale")
setMastercardClass(paymentMethod == "MasterCard" || paymentMethod == "" ? "" : "grayscale")
setJCBClass(paymentMethod == "JCB" || paymentMethod == "" ? "" : "grayscale")
setUnionPayClass(paymentMethod == "UnionPay" || paymentMethod == "" ? "" : "grayscale")
setPPSlass(paymentMethod == "PPS" || paymentMethod == "" ? "" : "grayscale")
@@ -177,8 +189,8 @@ const MultiPaymentWindow = (props) => {
</Button>
</Grid>
<Grid item>
<Button variant="contained" color="white" onClick={selectedPaymentMethodHandle("Mastercard")} disabled={props.creditCardStatus.active === "N"}>
<img className={mastercardClass} src={MasterIcon} width="80" height="80" alt="Mastercard"></img>
<Button variant="contained" color="white" onClick={selectedPaymentMethodHandle("MasterCard")} disabled={props.creditCardStatus.active === "N"}>
<img className={mastercardClass} src={MasterIcon} width="80" height="80" alt="MasterCard"></img>
</Button>
</Grid>
<Grid item>
@@ -235,6 +247,25 @@ const MultiPaymentWindow = (props) => {
</Typography>
</Grid>
</Grid>
{paymentMethod !=""?
filteredPaymentMethod.map((availableMethod) => {
return (
<Grid container key={availableMethod.subtype} className={"css-1tx0bae"} sx={{ mt: 1, p:2 }}>
{availableMethod.pointstonote.map((pointstonote) => {
return (
<Grid container key={pointstonote.order} sx={{ p:0.5 }} direction="row" justifyContent="flex-start" alignItems="center">
<Grid item>
<Typography sx={{fontSize: "16px", color: "#000000", textAlign: "left" }}>
{pointstonote.content}
</Typography>
</Grid>
</Grid>
);
})}
</Grid>
);
})
: null}
</Grid>
</center>
</Grid>


+ 9
- 7
src/pages/Payment/index.js View File

@@ -31,7 +31,7 @@ import {
import titleBackgroundImg from 'assets/images/dashboard/gazette-bar.png'
import {ThemeProvider} from "@emotion/react";
import {PNSPS_BUTTON_THEME} from "../../themes/buttonConst";
import {FormattedMessage} from "react-intl";
import {FormattedMessage,useIntl} from "react-intl";
const BackgroundHead = {
backgroundImage: `url(${titleBackgroundImg})`,
width: '100%',
@@ -47,8 +47,10 @@ const Index = () => {
const getTransactionIdUrl = "/api/payment/transaction";
const navigate = useNavigate()
const location = useLocation();
const intl = useIntl();
const { locale } = intl;

// const local = {en:"en-us", zh:"zh-hk", cn:"zh-cn"};
const local = {en:"en-us", zh:"zh-hk", cn:"zh-cn"};
const preferpaymentmethods = ['visa', 'mastercard', 'pps', 'creditcard', 'fps'];
const [totalAmount, setTotalAmount] = useState(0);
const [appIds, setAppIds] = useState([]);
@@ -119,9 +121,9 @@ const Index = () => {
page = '/paymentPage/card';
stateParams = { state: { amount: totalAmount, transactionid: transactionData.transactionid, webtoken: transactionData.webtoken, type: "Visa", paymentMethod: "02,BCMP,CreditCard" } }
paymentMethod = "02,BCMP,CreditCard";
} else if (selectedPaymentMethod === "Mastercard") {
} else if (selectedPaymentMethod === "MasterCard") {
page = '/paymentPage/card';
stateParams = { state: { amount: totalAmount, transactionid: transactionData.transactionid, webtoken: transactionData.webtoken, type: "Mastercard", paymentMethod: "02,BCMP,CreditCard" } }
stateParams = { state: { amount: totalAmount, transactionid: transactionData.transactionid, webtoken: transactionData.webtoken, type: "MasterCard", paymentMethod: "02,BCMP,CreditCard" } }
paymentMethod = "02,BCMP,CreditCard";
} else if (selectedPaymentMethod === "JCB") {
page = '/paymentPage/card';
@@ -159,7 +161,7 @@ const Index = () => {
HttpUtils.post({
url: paymentPath + getAvailablePaymentUrl,
params: {
// "locale": local.zh,
"locale": locale === 'en' ?local.en:locale === 'zh-HK' ?local.zh:local.cn,
"amount": totalAmount,
// "eserviceids": [
// "<eserviceid>", "<eserviceid>"
@@ -225,7 +227,7 @@ const Index = () => {
// "type": "INFO"
// },
// {
// "content": "Different credit card issuers may have implemented different mechanisms to authenticate the cardholder's identity during online payment. Please contact your card issuer if you want to learn more about the J/Secure, Mastercard SecureCode and Verified by Visa service. ",
// "content": "Different credit card issuers may have implemented different mechanisms to authenticate the cardholder's identity during online payment. Please contact your card issuer if you want to learn more about the J/Secure, MasterCard SecureCode and Verified by Visa service. ",
// "order": 43,
// "type": "INFO"
// }
@@ -267,7 +269,7 @@ const Index = () => {
// "type": "INFO"
// },
// {
// "content": "Different credit card issuers may have implemented different mechanisms to authenticate the cardholder's identity during online payment. Please contact your card issuer if you want to learn more about the J/Secure, Mastercard SecureCode and Verified by Visa service. ",
// "content": "Different credit card issuers may have implemented different mechanisms to authenticate the cardholder's identity during online payment. Please contact your card issuer if you want to learn more about the J/Secure, MasterCard SecureCode and Verified by Visa service. ",
// "order": 43,
// "type": "INFO"
// }


+ 7
- 4
src/pages/Proof/Payment/Pay.js View File

@@ -42,7 +42,7 @@ const Index = () => {
const navigate = useNavigate()
const [fee, setFee] = useState(0);

const [record, setRecord] = React.useState();
const [record, setRecord] = React.useState({});
const [onReady, setOnReady] = React.useState(false);
const [isPopUp, setIsPopUp] = useState(false);

@@ -60,11 +60,14 @@ const Index = () => {
HttpUtils.get({
url: UrlUtils.GET_PROOF_PAY + "/" + params.id,
onSuccess: (responseData) => {
if (!responseData.data?.id) {
navigate("/proof/search");
}
// if (!responseData.data?.id) {
// navigate("/proof/search");
// }
setRecord(responseData.data);
setFee(responseData.data.fee);
},
onError:()=>{

}
});
}


Loading…
Cancel
Save