ravelinjs v0 Reference

ravelinjs v0 is our open-source javascript library built to help you send Ravelin information about your customers’ activity while using your site. This includes determining deviceIds, tracking session activity, fingerprinting devices and providing client-side encryption functionality for acquiring encrypted card details.

ravelinjs.setFallbackJS(src)

setFallbackJS defines an alternative source from the default ravelin-hosted JavaScript used for simple device tracking. It is recommended you host a copy of https://cdn.ravelin.net/js/rvn-0.1.18-lite.min.js on your domain and reference it here.

Must be called before setPublicAPIKey.

Deprecated

This method will be removed in ravelinjs 1.0.0 which will no longer rely on any third-party scripts.

Parameters

NameTypeDescription
srcStringYour self-hosted copy of https://cdn.ravelin.net/js/rvn-0.1.18-lite.min.js.

Examples

ravelinjs.setFallbackJS('/rvn.js');

Returns

  • Void

ravelinjs.setPublicAPIKey(apiKey)

setPublicAPIKey sets the API Key used to authenticate with Ravelin. It should be called before anything else. You can find your publishable API key inside the Ravelin dashboard.

Parameters

NameTypeDescription
apiKeyStringYour publishable API key

Examples

ravelinjs.setPublicAPIKey('live_publishable_key_abc123');

Returns

  • Void

ravelinjs.setRSAKey(rawPubKey)

setRSAKey configures RavelinJS with the given public encryption key, in the format that Ravelin provides it. You can find your public RSA key inside the Ravelin dashboard.

Parameters

NameTypeDescription
rawPubKeyStringThe public RSA key provided by Ravelin, used to encrypt card details.

Examples

ravelinjs.setRSAKey('10010|abc123...xyz789');

Returns

  • Void

ravelinjs.setCustomerId(customerId)

setCustomerId sets the customerId for all requests submitted by ravelinjs. This is needed to associate device activity with a specific user. This value should be the same that you are providing to Ravelin in your server-side API requests. If this value is not yet know, perhaps because the customer has not yet logged in or provided any user details, please refer to setTempCustomerId instead.

Parameters

NameTypeDescription
customerIdStringcustomerId unique to the current user

Examples

ravelinjs.setCustomerId('123321');

Returns

  • Void

ravelinjs.setTempCustomerId(tempCustomerId)

setTempCustomerId sets the tempCustomerId for all requests submitted by ravelinjs. This is used as a temporary association between device/ session data and a user, and should be followed with a v2/login request to Ravelin as soon as a customerId is available.

Parameters

NameTypeDescription
tempCustomerIdStringA placeholder id for when customerId is not known

Examples

ravelinjs.setTempCustomerId('session_abcdef1234567'); // a session id is often a good temporary customerId

Returns

  • Void

ravelinjs.encrypt(details)

encrypt performs the encrypt process for the provided card details and prepares them to be sent to Ravelin, with the resulting payload returned as a string.

Parameters

NameTypeDescription
detailsObjectAn object containing properties pan, month, year and nameOnCard (optional).

Examples

var encrypted = ravelinjs.encrypt({pan: "4111 1111 1111 1111", month: 1, year: 18});
console.log(encrypted);
> '{"methodType":"paymentMethodCipher","cardCiphertext":"abc.....xyz==","aesKeyCiphertext":"def....tuv==","algorithm":"RSA_WITH_AES_256_GCM","ravelinSDKVersion": "0.0.1-ravelinjs"}'

Returns

  • String The encrypted payload to be sent to Ravelin.

ravelinjs.encryptAsObject(details)

encryptAsObject performs the encrypt process for the provided card details and prepares them to be sent to Ravelin, with the resulting payload returned as an object.

Parameters

NameTypeDescription
detailsObjectAn object containing properties pan, month, year and nameOnCard (optional).

Examples

var encrypted = ravelinjs.encryptAsObject({pan: "4111 1111 1111 1111", month: 1, year: 18});
console.log(encrypted);
> {
>  methodType: "paymentMethodCipher",
>  cardCiphertext: "abc.....xyz==",
>  aesKeyCiphertext: "def....tuv==",
>  algorithm: "RSA_WITH_AES_256_GCM",
>  ravelinSDKVersion: "0.0.1-ravelinjs",
> }

Returns

  • Object The encrypted payload to be sent to Ravelin.

ravelinjs.track(eventName, meta)

track invokes the Ravelin client-side tracking script. You must have set the public API key in advance of calling track, so that it can submit the data directly to Ravelin. Its execution is asynchronous.

Parameters

NameTypeDescription
eventNameStringA description of what has occurred.
metaObjectAny additional metadata you wish to use to describe the page.

Examples

// track when a customer uses search functionality
ravelinjs.track('CUSTOMER_SEARCHED', { searchType: 'product' });

// track without any additional metadata
ravelinjs.track('CUSTOMER_SEARCHED');

Returns

  • Void

ravelinjs.trackPage(meta)

trackPage logs the page view. Call this from as many pages as possible.

Parameters

NameTypeDescription
metaObjectAny additional metadata you wish to use to describe the page.

Examples

// Call from landing page after page load
ravelinjs.trackPage(); // www.ravelintest.com

// Identical calls should be made on all subsequent page loads
ravelinjs.trackPage(); // www.ravelintest.com/page-1
...
ravelinjs.trackPage(); // www.ravelintest.com/page-2
...
...
ravelinjs.trackPage(); // www.ravelintest.com/page-3
..
ravelinjs.trackPage(); // www.ravelintest.com/page-2

Returns

  • Void

ravelinjs.trackLogout(meta)

trackLogout informs Ravelin of logout events and resets the associated customerId and tempCustomerId. Call this function immediately before your own logout logic is executed.

Parameters

NameTypeDescription
metaObjectAny additional metadata you wish to use to describe the event.

Examples

ravelinjs.trackLogout(); // Called before you begin your logout process

Returns

  • Void

ravelinjs.trackFingerprint(customerId, callback)

trackFingerprint sends device information back to Ravelin. Invoke from the checkout page of your payment flow.

Parameters

NameTypeDescription
customerIdStringThe customerId to set for this device fingerprint. Optional if setCustomerId called in advance.
callbackFunctionOptional callback to check the fingerprint has completed. Prefer calling trackFingerprint on page load.

Examples

// if setCustomerId was already called
ravelinjs.trackFingerprint();
// else, you must inform Ravelin of the customerId explicitly
ravelinjs.trackFingerprint('customer123');

Returns

  • Void

ravelinjs.setCookieDomain(domain)

setCookieDomain configures where Ravelin will store any cookies on your domain. Set as high as possible, e.g. “.mysite.com” rather than “.www.uk.mysite.com”.

Parameters

NameTypeDescription
domainStringDomain under which Ravelin generated cookies should be stored

Examples

ravelinjs.setCookieDomain('.mysite.com');

Returns

  • Void

ravelinjs.setOrderId(orderId)

Set the orderId submitted with requests. This is used to associate session-activity with a specific user.

Parameters

NameTypeDescription
orderIdStringCurrent orderId for the order

Examples

ravelinjs.setOrderId('order123');

Returns

  • Void

Feedback