Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This is the minimum configuration required, without any additional styling or callbacks, callbacks, or field element placement in HTML markup.

Code Block
languagejs
window.Netvalve.initTokenFields({ 
  formSelector: '#payment-form',
  fields: {
      cardNumber: {
          containerSelector: '#card-number-container'
      },
      cardCvv: {
          containerSelector: '#cvv-container'
      },
      cardExpiry: {
          containerSelector: '#expiry-container'
      }
   }
});

...

  • formId (string) OR formSelector

  • payButtonId (string)

Optional Fields

Styling Options

  • inputStyles (object): Global styles applied to all fields

    Code Block
    languagejs
    {
      ...//rest of options
      inputStyles: {
        color: 'black',
        'font-size': '16px',
        // ... any valid CSS properties
      }
    }
  • invalidStyles (object): Styles applied to a field when validation fails

  • Code Block
    languagejs
    { ...//rest of options invalidStyles: {

  • fields (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

formId

string

Y*

Provide the form element id.

"paymentForm"

formSelector

string

Y *

"#checkout form"

submitButtonId

string

Y

The submit button element id

"payButton"

fields

object

Y *

A configuration object for each field. See Field Config below.

Code Block
{
  cardNumber: {},
  cardCVV: {},
  cardExpiry: {}
}

inputStyles

object

N

Object of css styles. Applies to all fields. Note: css properties are not camelcase. Example: use “border-color", not borderColor

Code Block
{
 'font-weight': 'bold'
}

invalidStyles

object

N

Object of css styles. Applies to all field inputs. Note: css properties are not camelcase. Example: use “border-color", not borderColor

Code Block
{
 border: '2px solid red',
 'font-weight': 

...

validStyles (object): Styles applied to fields when validation passes

In Development

  • placeholderStyles (object): Styles applied to placeholder text

In Development

  • focusStyles (object): Styles applied when fields are focused

In Development

  • inputClasses (string[]): Array of CSS class names to apply to all fields

In Development

 

Individual Field Configuration

Each field (cardNumber, cvv, expiry) currently accepts:

  • inputStyles (object): Field-specific styles that override global styles

Code Block
languagejs
fields: {
    cardNumber: {
        inputStyles: {
          color: 'blue'
        }
    },
    cvv: {
        inputStyles: {
         color: 'red'
        }
    },
    expiry: {
        inputStyles: {
          color: 'purple'
        }
    }
}

Callbacks

onSubmitPayment (function): Callback function called when form is submitted and validation passes

Code Block
languagejs
payButtonId: 'submit-button',
onSubmitPayment: (paymentToken) => {
 // send the payment token to your server to process sale 
}

Note* A payButtonId for the button element must be provided.

 

onValidate (function): Callback function called when field validation occurs

Code Block
languagejs
onValidate: (fieldData) => {
 // check the field, and the success property to see if validation succeeded
}

You can view the structure of the field data here.

Return Value

The initTokenFields function returns an object with the following methods:

  • validateFields(): Asynchronously validates all fields, returns a Promise<boolean>

'bold'
}

placeholderStyles

object

N

Applies to all field input placeholders. Note css properties are not camelcase. Example: use “border-color", not borderColor

Code Block
{
  color: 'black',
 'font-weight': 'bold'
}

defaultIframeHeight

string

N

The initial height of the iframe before the form’s input styles are calculated and applied to the form. Default is 46px

“48px”

onSubmitPayment

function

N

The callback function invoked after all fields have been encrypted and the payment token ready.

Parameters: paymentToken

The string token will be passed to the callback.

Code Block
(paymentToken) => {

 // form submit
 // logic
 // goes here

}

onValidate

function

N

The callback function invoked for each field after validation occurs (success and fail).

Parameters: fieldData

You can view the structure of the field data here.

Code Block
(fieldData) => {
 // check field
 // validation
 // succcess
 // or
 // 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

containerSelector

string

Y*

A CSS selector for the div container where the field element will be rendered.

".cvv-container"

inputStyles

object

N

Object of css styles. Overrides the global/parent inputStyles. Note css properties are not camelcase. Example: use “border-color", not borderColor

Code Block
{
 'font-weight': 'bold'
}

Example Advanced Implementation

Code Block
languagejs
window.Netvalve.initTokenFields({
    formIdformSelector: '#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:  inputStyles: {'#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);
    }
});