This is a Typescript/javascript library that performs ThreeD Secure authentication.
-
Installation process Use: npm i paytools-3ds
-
Software dependencies None.
-
Change log 3.0.0 - Typescript version. Contains changes: Typescript implementation (includes .d.ts file). Support (MasterCard) SLI (Security level information). Use Promise pattern. Implemented as class.
3.0.1-beta.1 Support parameters customerEmail and customerPhone.
3.0.1-beta.2 Added constructor with default api base url.
3.0.1-beta.3 Fix packaging issue.
3.0.1-beta.4 Fix packaging issue.
3.0.1-beta.5 Fix packaging issue.
3.0.1-beta.6 Support eWallet operations.
3.1.0-beta.0 Support card-token based 3ds operation. Fix challenge form display. Added event for Gui interaction.
- API references The library contains a single api.
Call:
Classic pattern perform3ds(sessionToken, iFrameElementSelector, [cardData], [cardToken]) .then(message => {...});
await pattern const message = await perform3ds(sessionToken, iFrameElementSelector, [cardData], [cardToken]);
sessionToken Token obtained from the Orchestra service (see testing below)
iFrameElementSelector {string} Selector of element in which a challenge iFrame is to be created
cardData {Object} The card details to be authenticated in the following format:
{
cardType: "", // 'Visa', 'MasterCard', 'AMEX', 'Discover', ...
cardNumber: "",
expirationYear: number,
expirationMonth: number,
cardHolderName: "",
customerEmail: string,
customerPhone: string
};
Note that either customerEmail or customerPhone must be populated.
cardToken {string} A representation of the card object hosted on the server.
message The authentication results object. The results object has a member named 'messageType' and optional members, based on the MessageType.
result structure { messageType: "", ... other members }
Authenticated message { messageType: "Authenticated", threeDs: { authenticationValue: "", eci: "", xid: "", version: "", sli: "" } }
Rejected message { messageType: "Rejected", reason: "" }
CardNotEnrolled message { messageType: "CardNotEnrolled" }
TechnicalProblem message { messageType: "TechnicalProblem", reason: "", reference: "" }
This is an optional event that is triggered when the 3ds requires user interaction or after user interaction is completed. Sample usage: var tds = new threeDs.Engine(); // Set event handlers to show/hide throbber tds.onPresentingGui = (isOn) => toggleThrobber(!isOn);
In order to use the library, you will need to have an account with Orchestra. Use https://www.bluetime.io
You may use the index.html as an example for using the library.