init hosted fields functionality

This commit is contained in:
David Remer 2020-04-30 15:28:48 +03:00
parent 1225ad83c8
commit 23dd407fc8
21 changed files with 212 additions and 45 deletions

View file

@ -0,0 +1,49 @@
class CreditCardRenderer {
constructor(defaultConfig) {
this.defaultConfig = defaultConfig;
}
render(wrapper, contextConfig) {
if (
wrapper === null
|| typeof paypal.HostedFields === 'undefined'
|| ! paypal.HostedFields.isEligible()
|| document.querySelector(wrapper) === null
) {
return;
}
//ToDo: Styles
paypal.HostedFields.render({
createOrder: contextConfig.createOrder,
fields: {
number: {
selector: '#ppcp-credit-card',
placeholder: this.defaultConfig.hosted_fields.labels.credit_card_number,
},
cvv: {
selector: '#ppcp-cvv',
placeholder: this.defaultConfig.hosted_fields.labels.cvv,
},
expirationDate: {
selector: '#ppcp-expiration-date',
placeholder: this.defaultConfig.hosted_fields.labels.mm_yyyy,
}
}
}).then(hostedFields => {
document.querySelector(wrapper).addEventListener(
'submit',
event => {
event.preventDefault();
hostedFields.submit().then(payload => {
payload.orderID = payload.orderId;
return contextConfig.onApprove(payload);
});
}
);
});
}
}
export default CreditCardRenderer;