...
formId
(string) ORformSelector
payButtonId
(string) if theonSubmitPayment
callback is providedfields
(if<netvalve-cardnumber>
,<netvalve-cvv>
and<netvalve-expiry>
have not been placed in the HTML markup)
Allowed Properties and Methods
Property | Type | Required | Description | Format / Example |
---|---|---|---|---|
| string | Y* | Provide the form element id. |
|
| string | Y * |
| |
| string | Y |
The submit button element id |
| |
| object | Y |
A configuration object for each field. See Field Config below. |
| |||||
| object | N | Object of css styles. Applies to all fields. Note: css properties are not camelcase. Example: use |
| ||
| object | N | Object of css styles. Applies to all field inputs. Note: css properties are not camelcase. Example: use |
| ||
| object | N | Applies to all field input placeholders. Note css properties are not camelcase. Example: use |
| ||
| string | N | The initial height of the iframe before the form’s input styles are calculated and applied to the form. Default is |
| ||
| boolean. Default = | N | By default the form will intercept the form submission, and if tokenization succeeds, it will either call the | true / false | ||
| function | N | The callback function invoked after all fields have been encrypted and the payment token ready. |
| ||
| function | N | The callback function invoked for each field after validation occurs (success and fail). |
|
Field Configuration
This applies to the individual field objects under the fields
property, see above.
Code Block |
---|
{ cardNumber: {}, // Field Configuration cardCvv: {}, // Field Configuration cardExpiry: {} // Field Configuration } |
Property | Type | Required | Description | Format / Example | ||
---|---|---|---|---|---|---|
| string | Y* | A CSS selector for the div container where the field element will be rendered. |
| ||
| object | N | Object of css styles. Overrides the global/parent |
|
Example Advanced Implementation using callbacks
Code Block | ||
---|---|---|
| ||
window.Netvalve.initTokenFields({
formSelector: '#checkout .payment-form form',
payButtonId: 'submit-button',
inputStyles: {
'font-size': '16px',
padding: '8px',
'border-radius': '4px',
border: '1px solid #ccc'
},
invalidStyles: {
border: '1px solid red'
},
fields: {
cardNumber: {
containerSelector: '#card-number-container',
inputStyles: {
'letter-spacing': '1px'
}
},
cardCvv: {
containerSelector: '#cvv-container'
},
cardExpiry: {
containerSelector: '#expiry-container'
}
},
onValidate: (fieldMessage) => {
console.log('Field validation:', fieldMessage);
},
onSubmitPayment: (paymentToken) => {
// Send token to your server
console.log('Payment token:', paymentToken);
}
}); |
Example manually calling tokenization of fields
Code Block |
---|
window.Netvalve.initTokenFields({ formSelector: '#checkout', interceptFormSubmit: false, \\ SET TO FALSE TO HAND OVER THE FORM SUBMIT RESPONSIBILITY fields: { cardNumber: { containerSelector: '#card-number-container', }, cardCvv: { containerSelector: '#cvv-container' }, cardExpiry: { containerSelector: '#expiry-container' } }, }); document.querySelector('#submit-button')?.addEventListener('click', async (e) => { e.preventDefault(); const token = await window.Netvalve.tokenizeFields(); // PERFORM TOKENIZATION if (token) document.querySelector('form')?.submit() // TOKEN RECEIVED. SUBMITTING FORM else console.log('^^^^Token submission failed, received null when expecting a payment token'); }); |