Merge pull request #193 from woocommerce/PCP-166-acdc-checkout-error-card-details

ACDC checkout error: "Card Details not valid"; but payment completes
This commit is contained in:
Emili Castells 2021-07-16 09:09:27 +02:00 committed by GitHub
commit 66aa4ab841
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View file

@ -39,4 +39,4 @@ class CartBootstrap {
}
}
export default CartBootstrap;
export default CartBootstrap;

View file

@ -7,6 +7,7 @@ class CreditCardRenderer {
this.errorHandler = errorHandler;
this.spinner = spinner;
this.cardValid = false;
this.formValid = false;
}
render(wrapper, contextConfig) {
@ -97,12 +98,8 @@ class CreditCardRenderer {
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 && this.cardValid) {
if (this.formValid && this.cardValid) {
const save_card = this.defaultConfig.save_card ? true : false;
const vault = document.getElementById('ppcp-credit-card-vault') ?
document.getElementById('ppcp-credit-card-vault').checked : save_card;
@ -134,6 +131,13 @@ class CreditCardRenderer {
const validCards = this.defaultConfig.hosted_fields.valid_cards;
this.cardValid = validCards.indexOf(event.cards[0].type) !== -1;
})
hostedFields.on('validityChange', (event) => {
const formValid = Object.keys(event.fields).every(function (key) {
return event.fields[key].isValid;
});
this.formValid = formValid;
})
document.querySelector(wrapper + ' button').addEventListener(
'click',
submitEvent