Merge pull request #8 from woocommerce/issue-4-disable-card

Prevents DCC payments of disabled card brands
This commit is contained in:
Rasmy Nguyen 2020-10-01 09:06:17 +00:00 committed by GitHub
commit ce870122f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 200 additions and 423 deletions

View file

@ -10,7 +10,11 @@ const onApprove = (context, errorHandler) => {
return res.json();
}).then((data)=>{
if (!data.success) {
errorHandler.genericError();
if (data.data.code === 100) {
errorHandler.message(data.data.message);
} else {
errorHandler.genericError();
}
console.error(data);
if (typeof actions.restart !== 'undefined') {
return actions.restart();

View file

@ -5,6 +5,7 @@ class CreditCardRenderer {
constructor(defaultConfig, errorHandler) {
this.defaultConfig = defaultConfig;
this.errorHandler = errorHandler;
this.cardValid = false;
}
render(wrapper, contextConfig) {
@ -96,7 +97,7 @@ class CreditCardRenderer {
return state.fields[key].isValid;
});
if (formValid) {
if (formValid && this.cardValid) {
let vault = document.querySelector(wrapper + ' .ppcp-credit-card-vault') ?
document.querySelector(wrapper + ' .ppcp-credit-card-vault').checked : false;
@ -110,12 +111,21 @@ class CreditCardRenderer {
return contextConfig.onApprove(payload);
});
} else {
this.errorHandler.message(this.defaultConfig.hosted_fields.labels.fields_not_valid);
const message = ! this.cardValid ? this.defaultConfig.hosted_fields.labels.card_not_supported : this.defaultConfig.hosted_fields.labels.fields_not_valid;
this.errorHandler.message(message);
}
}
hostedFields.on('inputSubmitRequest', function () {
submitEvent(null);
});
hostedFields.on('cardTypeChange', (event) => {
if ( ! event.cards.length ) {
this.cardValid = false;
return;
}
const validCards = this.defaultConfig.hosted_fields.valid_cards;
this.cardValid = validCards.indexOf(event.cards[0].type) !== -1;
})
document.querySelector(wrapper + ' button').addEventListener(
'click',
submitEvent