woocommerce-paypal-payments/modules.local/ppcp-button/resources/js/modules/Renderer/CreditCardRenderer.js

66 lines
2.2 KiB
JavaScript
Raw Normal View History

2020-04-30 15:28:48 +03:00
class CreditCardRenderer {
constructor(defaultConfig) {
this.defaultConfig = defaultConfig;
}
render(wrapper, contextConfig) {
if (
wrapper === null
|| document.querySelector(wrapper) === null
) {
return;
}
if (
typeof paypal.HostedFields === 'undefined'
|| ! paypal.HostedFields.isEligible()
) {
const wrapperElement = document.querySelector(wrapper);
wrapperElement.parentNode.removeChild(wrapperElement);
return;
}
2020-04-30 15:28:48 +03:00
//ToDo: Styles
paypal.HostedFields.render({
createOrder: contextConfig.createOrder,
fields: {
number: {
selector: wrapper + ' .ppcp-credit-card',
2020-04-30 15:28:48 +03:00
placeholder: this.defaultConfig.hosted_fields.labels.credit_card_number,
},
cvv: {
selector: wrapper + ' .ppcp-cvv',
2020-04-30 15:28:48 +03:00
placeholder: this.defaultConfig.hosted_fields.labels.cvv,
},
expirationDate: {
selector: wrapper + ' .ppcp-expiration-date',
2020-04-30 15:28:48 +03:00
placeholder: this.defaultConfig.hosted_fields.labels.mm_yyyy,
}
}
}).then(hostedFields => {
document.querySelector(wrapper).addEventListener(
'submit',
event => {
event.preventDefault();
2020-07-13 09:55:22 +03:00
hostedFields.submit({
contingencies: ['3D_SECURE']
}).then((payload) => {
2020-04-30 15:28:48 +03:00
payload.orderID = payload.orderId;
2020-07-13 15:15:31 +03:00
console.log(payload);
2020-07-13 15:06:34 +03:00
2020-07-13 09:55:22 +03:00
if (payload.liabilityShift === 'POSSIBLE') {
return contextConfig.onApprove(payload);
}
if (payload.liabilityShift) {
2020-07-13 15:06:34 +03:00
return contextConfig.onApprove(payload);
2020-07-13 09:55:22 +03:00
}
2020-07-13 15:06:34 +03:00
return contextConfig.onApprove(payload);
2020-04-30 15:28:48 +03:00
});
}
);
});
}
}
export default CreditCardRenderer;