mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 16:24:33 +08:00
validate credit card data
This commit is contained in:
parent
9d20d59b87
commit
29f712f185
3 changed files with 25 additions and 7 deletions
|
@ -3,10 +3,12 @@ import SingleProductBootstap from './modules/ContextBootstrap/SingleProductBoots
|
||||||
import CartBootstrap from './modules/ContextBootstrap/CartBootstap';
|
import CartBootstrap from './modules/ContextBootstrap/CartBootstap';
|
||||||
import CheckoutBootstap from './modules/ContextBootstrap/CheckoutBootstap';
|
import CheckoutBootstap from './modules/ContextBootstrap/CheckoutBootstap';
|
||||||
import Renderer from './modules/Renderer/Renderer';
|
import Renderer from './modules/Renderer/Renderer';
|
||||||
|
import ErrorHandler from './modules/ErrorHandler';
|
||||||
import CreditCardRenderer from "./modules/Renderer/CreditCardRenderer";
|
import CreditCardRenderer from "./modules/Renderer/CreditCardRenderer";
|
||||||
|
|
||||||
const bootstrap = () => {
|
const bootstrap = () => {
|
||||||
const creditCardRenderer = new CreditCardRenderer(PayPalCommerceGateway);
|
const errorHandler = new ErrorHandler();
|
||||||
|
const creditCardRenderer = new CreditCardRenderer(PayPalCommerceGateway, errorHandler);
|
||||||
const renderer = new Renderer(creditCardRenderer, PayPalCommerceGateway);
|
const renderer = new Renderer(creditCardRenderer, PayPalCommerceGateway);
|
||||||
const context = PayPalCommerceGateway.context;
|
const context = PayPalCommerceGateway.context;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
class CreditCardRenderer {
|
class CreditCardRenderer {
|
||||||
|
|
||||||
constructor(defaultConfig) {
|
constructor(defaultConfig, errorHandler) {
|
||||||
this.defaultConfig = defaultConfig;
|
this.defaultConfig = defaultConfig;
|
||||||
|
this.errorHandler = errorHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
render(wrapper, contextConfig) {
|
render(wrapper, contextConfig) {
|
||||||
|
@ -43,12 +44,23 @@ class CreditCardRenderer {
|
||||||
'submit',
|
'submit',
|
||||||
event => {
|
event => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
this.errorHandler.clear();
|
||||||
|
const state = hostedFields.getState();
|
||||||
|
const formValid = Object.keys(state.fields).every(function (key) {
|
||||||
|
return state.fields[key].isValid;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (formValid) {
|
||||||
|
|
||||||
hostedFields.submit({
|
hostedFields.submit({
|
||||||
contingencies: ['3D_SECURE']
|
contingencies: ['3D_SECURE']
|
||||||
}).then((payload) => {
|
}).then((payload) => {
|
||||||
payload.orderID = payload.orderId;
|
payload.orderID = payload.orderId;
|
||||||
return contextConfig.onApprove(payload);
|
return contextConfig.onApprove(payload);
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
this.errorHandler.message(this.defaultConfig.hosted_fields.labels.fields_not_valid);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
|
@ -272,6 +272,10 @@ class SmartButton implements SmartButtonInterface
|
||||||
'credit_card_number' => __('Credit Card Number', 'woocommerce-paypal-commerce-gateway'),
|
'credit_card_number' => __('Credit Card Number', 'woocommerce-paypal-commerce-gateway'),
|
||||||
'cvv' => __('CVV', 'woocommerce-paypal-commerce-gateway'),
|
'cvv' => __('CVV', 'woocommerce-paypal-commerce-gateway'),
|
||||||
'mm_yyyy' => __('MM/YYYY', 'woocommerce-paypal-commerce-gateway'),
|
'mm_yyyy' => __('MM/YYYY', 'woocommerce-paypal-commerce-gateway'),
|
||||||
|
'fields_not_valid' => __(
|
||||||
|
'Unfortunatly, your credit card details are not valid.',
|
||||||
|
'woocommerce-paypal-commerce-gateway'
|
||||||
|
),
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue