Merged in release/2025-03-28 (pull request #2218)
IO-3176 IntelliPay Payment Method Mapping
This commit is contained in:
@@ -1,11 +1,10 @@
|
|||||||
import { Alert, Form, Switch } from "antd";
|
import { Alert, Form, Select, Switch } from "antd";
|
||||||
import React from "react";
|
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
|
import LayoutFormRow from "../layout-form-row/layout-form-row.component";
|
||||||
|
|
||||||
import {connect} from "react-redux";
|
import { connect } from "react-redux";
|
||||||
import {createStructuredSelector} from "reselect";
|
import { createStructuredSelector } from "reselect";
|
||||||
import {selectBodyshop} from "../../redux/user/user.selectors";
|
import { selectBodyshop } from "../../redux/user/user.selectors";
|
||||||
|
|
||||||
const mapStateToProps = createStructuredSelector({
|
const mapStateToProps = createStructuredSelector({
|
||||||
bodyshop: selectBodyshop
|
bodyshop: selectBodyshop
|
||||||
@@ -16,17 +15,17 @@ const mapDispatchToProps = () => ({
|
|||||||
export default connect(mapStateToProps, mapDispatchToProps)(ShopInfoIntellipay);
|
export default connect(mapStateToProps, mapDispatchToProps)(ShopInfoIntellipay);
|
||||||
|
|
||||||
// noinspection JSUnusedLocalSymbols
|
// noinspection JSUnusedLocalSymbols
|
||||||
export function ShopInfoIntellipay({bodyshop, form}) {
|
export function ShopInfoIntellipay({ bodyshop, form }) {
|
||||||
const {t} = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Form.Item dependencies={[["intellipay_config", "enable_cash_discount"]]}>
|
<Form.Item dependencies={[["intellipay_config", "enable_cash_discount"]]}>
|
||||||
{() => {
|
{() => {
|
||||||
const {intellipay_config} = form.getFieldsValue();
|
const { intellipay_config } = form.getFieldsValue();
|
||||||
|
|
||||||
if (intellipay_config?.enable_cash_discount)
|
if (intellipay_config?.enable_cash_discount)
|
||||||
return <Alert message={t("bodyshop.labels.intellipay_cash_discount")}/>;
|
return <Alert message={t("bodyshop.labels.intellipay_cash_discount")} />;
|
||||||
}}
|
}}
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
@@ -36,7 +35,93 @@ export function ShopInfoIntellipay({bodyshop, form}) {
|
|||||||
valuePropName="checked"
|
valuePropName="checked"
|
||||||
name={["intellipay_config", "enable_cash_discount"]}
|
name={["intellipay_config", "enable_cash_discount"]}
|
||||||
>
|
>
|
||||||
<Switch/>
|
<Switch />
|
||||||
|
</Form.Item>
|
||||||
|
</LayoutFormRow>
|
||||||
|
<LayoutFormRow header={t("bodyshop.fields.intellipay_config.payment_type")}>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.visa")}
|
||||||
|
name={["intellipay_config", "payment_map", "visa"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.mast")}
|
||||||
|
name={["intellipay_config", "payment_map", "mast"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.amex")}
|
||||||
|
name={["intellipay_config", "payment_map", "amex"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.disc")}
|
||||||
|
name={["intellipay_config", "payment_map", "disc"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.dnrs")}
|
||||||
|
name={["intellipay_config", "payment_map", "dnrs"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.jcb")}
|
||||||
|
name={["intellipay_config", "payment_map", "jcb"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
|
</Form.Item>
|
||||||
|
<Form.Item
|
||||||
|
label={t("bodyshop.fields.intellipay_config.payment_map.intr")}
|
||||||
|
name={["intellipay_config", "payment_map", "intr"]}
|
||||||
|
>
|
||||||
|
<Select showSearch>
|
||||||
|
{bodyshop.md_payment_types.map((item, idx) => (
|
||||||
|
<Select.Option key={idx} value={item}>
|
||||||
|
{item}
|
||||||
|
</Select.Option>
|
||||||
|
))}
|
||||||
|
</Select>
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
</LayoutFormRow>
|
</LayoutFormRow>
|
||||||
</>
|
</>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -371,6 +371,7 @@ exports.postback = async (req, res) => {
|
|||||||
iprequest: values,
|
iprequest: values,
|
||||||
decodedComment
|
decodedComment
|
||||||
};
|
};
|
||||||
|
const ipMapping = req.body?.bodyshop?.intellipay_config?.payment_map;
|
||||||
|
|
||||||
logger.log("intellipay-postback-received", "DEBUG", req.user?.email, null, logResponseMeta);
|
logger.log("intellipay-postback-received", "DEBUG", req.user?.email, null, logResponseMeta);
|
||||||
|
|
||||||
@@ -417,7 +418,7 @@ exports.postback = async (req, res) => {
|
|||||||
amount: p.amount,
|
amount: p.amount,
|
||||||
transactionid: values.authcode,
|
transactionid: values.authcode,
|
||||||
payer: "Customer",
|
payer: "Customer",
|
||||||
type: values.cardtype,
|
type: ipMapping[(values.cardtype || "").toLowerCase()] || values.cardtype,
|
||||||
jobid: p.jobid,
|
jobid: p.jobid,
|
||||||
date: moment(Date.now()),
|
date: moment(Date.now()),
|
||||||
payment_responses: {
|
payment_responses: {
|
||||||
@@ -481,7 +482,7 @@ exports.postback = async (req, res) => {
|
|||||||
amount: values.total,
|
amount: values.total,
|
||||||
transactionid: values.authcode,
|
transactionid: values.authcode,
|
||||||
payer: "Customer",
|
payer: "Customer",
|
||||||
type: values.cardtype,
|
type: ipMapping[(values.cardtype || "").toLowerCase()] || values.cardtype,
|
||||||
jobid: values.invoice,
|
jobid: values.invoice,
|
||||||
date: moment(Date.now())
|
date: moment(Date.now())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user