Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
},
},
fields: {
number: {
selector: "#card-number",
},
cvv: {
selector: "#cvv",
},
expirationDate: {
selector: "#expiration-date",
},
},
};
hostedFields.create(options, function (
hostedFieldsErr,
hostedFieldsInstance
) {
if (hostedFieldsErr) {
showErrorMessage(loadingErrorMsg);
cardInputDiv.toggleAttribute("hidden", true);
return;
}
submitButton.removeAttribute("disabled");
hostedFieldsInstance.on("validityChange", function (event) {
var field = event.fields[event.emittedBy];
if (field.isValid || field.isPotentiallyValid) {
clearFieldError(field.container);
create(client, onAuthorizationSuccess) {
this.client = client;
HostedFields.create({
client,
styles: this.styles,
fields: this.fields,
}, (err, hostedFields) => {
if (err) {
this.onError(err);
return;
}
this.hostedFields = hostedFields;
[
'blur', 'focus', 'empty', 'notEmpty',
'cardTypeChange', 'validityChange',
].forEach((eventName) => {
hostedFields.on(eventName, ev => this.onFieldEvent(`on${cap(eventName)}`, ev));
});
this.onError(err);
this.cvvIconSvg = this.getElementById('cvv-icon-svg');
this.cvvLabelDescriptor = this.getElementById('cvv-label-descriptor');
this.inlineErrors = {};
if (!hasCVV) {
this.element.removeChild(this.getElementById('cvv-container'));
delete hfOptions.fields.cvv;
}
if (!hasPostal) {
this.element.removeChild(this.getElementById('postal-code-container'));
delete hfOptions.fields.postalCode;
}
this.model.asyncDependencyStarting();
hostedFields.create(hfOptions, function (err, hostedFieldsInstance) {
if (err) {
this.model.reportError(err);
return;
}
this.hostedFieldsInstance = hostedFieldsInstance;
this.hostedFieldsInstance.on('blur', this._onBlurEvent.bind(this));
this.hostedFieldsInstance.on('cardTypeChange', this._onCardTypeChangeEvent.bind(this));
this.hostedFieldsInstance.on('focus', this._onFocusEvent.bind(this));
this.hostedFieldsInstance.on('notEmpty', this._onNotEmptyEvent.bind(this));
this.hostedFieldsInstance.on('validityChange', this._onValidityChangeEvent.bind(this));
this.submit = this.getElementById('card-submit');
this.submit.addEventListener('click', this.tokenize.bind(this));
this.model.asyncDependencyReady();
} else {
this._removeExtraInput(extraInput);
}
}.bind(this));
if (!this.model.isGuestCheckout && this.merchantConfiguration.vault.allowVaultCardOverride === true) {
classList.remove(this.getElementById('save-card-field-group'), 'braintree-hidden');
}
if (this.merchantConfiguration.vault.vaultCard === false) {
this.saveCardInput.checked = false;
}
this.model.asyncDependencyStarting();
return hostedFields.create(hfOptions).then(function (hostedFieldsInstance) {
this.hostedFieldsInstance = hostedFieldsInstance;
this.hostedFieldsInstance.on('blur', this._onBlurEvent.bind(this));
this.hostedFieldsInstance.on('cardTypeChange', this._onCardTypeChangeEvent.bind(this));
this.hostedFieldsInstance.on('focus', this._onFocusEvent.bind(this));
this.hostedFieldsInstance.on('notEmpty', this._onNotEmptyEvent.bind(this));
this.hostedFieldsInstance.on('validityChange', this._onValidityChangeEvent.bind(this));
this.model.asyncDependencyReady();
}.bind(this)).catch(function (err) {
this.model.asyncDependencyFailed({
view: this.ID,
error: err
});
}.bind(this));
};