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.
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
Name | Type | Description |
---|---|---|
src | String |
Your self-hosted copy of https://cdn.ravelin.net/js/rvn-0.1.18-lite.min.js. |
Examples
ravelinjs.setFallbackJS('/rvn.js');
Returns
Void
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
Name | Type | Description |
---|---|---|
apiKey | String |
Your publishable API key |
Examples
ravelinjs.setPublicAPIKey('live_publishable_key_abc123');
Returns
Void
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
Name | Type | Description |
---|---|---|
rawPubKey | String |
The public RSA key provided by Ravelin, used to encrypt card details. |
Examples
ravelinjs.setRSAKey('10010|abc123...xyz789');
Returns
Void
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
Name | Type | Description |
---|---|---|
customerId | String |
customerId unique to the current user |
Examples
ravelinjs.setCustomerId('123321');
Returns
Void
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
Name | Type | Description |
---|---|---|
tempCustomerId | String |
A placeholder id for when customerId is not known |
Examples
ravelinjs.setTempCustomerId('session_abcdef1234567'); // a session id is often a good temporary customerId
Returns
Void
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
Name | Type | Description |
---|---|---|
details | Object |
An 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.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
Name | Type | Description |
---|---|---|
details | Object |
An 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.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
Name | Type | Description |
---|---|---|
eventName | String |
A description of what has occurred. |
meta | Object |
Any 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
trackPage logs the page view. Call this from as many pages as possible.
Parameters
Name | Type | Description |
---|---|---|
meta | Object |
Any 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
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
Name | Type | Description |
---|---|---|
meta | Object |
Any additional metadata you wish to use to describe the event. |
Examples
ravelinjs.trackLogout(); // Called before you begin your logout process
Returns
Void
trackFingerprint sends device information back to Ravelin. Invoke from the checkout page of your payment flow.
Parameters
Name | Type | Description |
---|---|---|
customerId | String |
The customerId to set for this device fingerprint. Optional if setCustomerId called in advance. |
callback | Function |
Optional 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
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
Name | Type | Description |
---|---|---|
domain | String |
Domain under which Ravelin generated cookies should be stored |
Examples
ravelinjs.setCookieDomain('.mysite.com');
Returns
Void
Set the orderId submitted with requests. This is used to associate session-activity with a specific user.
Parameters
Name | Type | Description |
---|---|---|
orderId | String |
Current orderId for the order |
Examples
ravelinjs.setOrderId('order123');
Returns
Void
Was this page helpful?