mirror of
https://github.com/woocommerce/woocommerce-paypal-payments.git
synced 2025-09-06 12:25:15 +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 CheckoutBootstap from './modules/ContextBootstrap/CheckoutBootstap';
|
||||
import Renderer from './modules/Renderer/Renderer';
|
||||
import ErrorHandler from './modules/ErrorHandler';
|
||||
import CreditCardRenderer from "./modules/Renderer/CreditCardRenderer";
|
||||
|
||||
const bootstrap = () => {
|
||||
const creditCardRenderer = new CreditCardRenderer(PayPalCommerceGateway);
|
||||
const errorHandler = new ErrorHandler();
|
||||
const creditCardRenderer = new CreditCardRenderer(PayPalCommerceGateway, errorHandler);
|
||||
const renderer = new Renderer(creditCardRenderer, PayPalCommerceGateway);
|
||||
const context = PayPalCommerceGateway.context;
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
class CreditCardRenderer {
|
||||
|
||||
constructor(defaultConfig) {
|
||||
constructor(defaultConfig, errorHandler) {
|
||||
this.defaultConfig = defaultConfig;
|
||||
this.errorHandler = errorHandler;
|
||||
}
|
||||
|
||||
render(wrapper, contextConfig) {
|
||||
|
@ -43,12 +44,23 @@ class CreditCardRenderer {
|
|||
'submit',
|
||||
event => {
|
||||
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({
|
||||
contingencies: ['3D_SECURE']
|
||||
}).then((payload) => {
|
||||
payload.orderID = payload.orderId;
|
||||
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'),
|
||||
'cvv' => __('CVV', '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