@trustpayments/3ds-sdk-js

## Warning! This package is for internal purposes only.

Usage no npm install needed!

<script type="module">
  import trustpayments3dsSdkJs from 'https://cdn.skypack.dev/@trustpayments/3ds-sdk-js';
</script>

README

3DS SDK JS

Warning!

This package is for internal purposes only.

Config

  • challengeDisplayMode - POPUP | INLINE. Default: POPUP

  • challengeDisplayInlineTargetElementId - string. Default: undefined.
    Must be the existing DOM Element when using challengeDisplayMode = INLINE.

  • loggingLevel - ERROR | ALL. Default: ERROR

  • translations - {cancel: string; }. Default: { cancel: 'X' }

  • processingScreenMode - OVERLAY | ATTACH_TO_ELEMENT. Default: OVERLAY
    ATTACH_TO_ELEMENT requires additional property processingScreenWrapperElementId

  • processingScreenWrapperElementId - string. Default: undefined
    Must be the existing DOM Element when using processingScreenMode = ATTACH_TO_ELEMENT.

  • threeDSMethodTimeout - number. Default: 10000 (milliseconds)
    Timeout after which 3DS Method will be resolved with UNCOMPLETED result. The value is validated against the range of 1-10000 milliseconds.

API

init$()

Initializes the library and returns the Observable with the config.

init$(config: ConfigInterface): Observable<ConfigInterface | never>;

Default values for config are:
challengeDisplayMode = ChallengeDisplayMode.POPUP
loggingLevel: LoggingLevel.ERROR

interface ConfigInterface {
  challengeDisplayMode?: ChallengeDisplayMode;
  challengeDisplayInlineTargetElementId?: string;
  loggingLevel?: LoggingLevel;
}

enum ChallengeDisplayMode {
  POPUP = 'POPUP',
  INLINE = 'INLINE',
}

enum LoggingLevel {
  ERROR = 'ERROR',
  ALL = 'ALL',
}

run3DSMethod$()

Runs 3DS method and returns the result.

run3DSMethod$(transactionId: string, notificationURL: string, methodURL: string): Observable<MethodURLResultInterface | never>;
interface MethodURLResultInterface {
  status: ResultActionCode;
  description: string;
  transactionId: string;
}

enum ResultActionCode {
  SUCCESS = 'SUCCESS',
  FAILURE = 'FAILURE',
  ERROR = 'ERROR',
  NOACTION = 'NOACTION',
  CANCELLED = 'CANCELLED',
  COMPLETED = 'COMPLETED',
}

Possible ResultActionCode values are: SUCCESS, FAILURE, ERROR, and UNCOMPLETED.
UNCOMPLETED timeout can be set via config property threeDSMethodTimeout. Default values is 10 seconds.

doChallenge$()

Initializes the challenge process. This method handles both versions 1.0.0 and 2.1.0 | 2.2.0.
For version 1.0.0, termURL and merchantData parameters are required.

doChallenge$(
  version: ThreeDSecureVersion,
  threedpayload: string,
  challengeURL: string,
  termURL?: string,
  merchantData?: string,
): Observable<ChallengeResultInterface | never>;
export interface ChallengeResultInterface {
  status: ResultActionCode; // ResultActionCode is shared between challenge and method URL
  description: string;
  transactionId?: string;
  data?: string;
}

Possible ResultActionCode values are: SUCCESS, FAILURE, ERROR, CANCELLED, and COMPLETED.

getBrowserData()

  • getBrowserData() returns an object with the following interface:
interface BrowserDataInterface {
  browserJavaEnabled: boolean;
  browserJavascriptEnabled: boolean;
  browserLanguage: string;
  browserScreenWidth: number;
  browserScreenHeight: number;
  browserColorDepth: number;
  browserUserAgent: string;
  browserTZ: number; // in minutes
}

showProcessingScreen()

  • showProcessingScreen(cardType: CardType) displays processing screen with predefined mode property processingScreenMode and optional processingScreenWrapperElementId.
export enum CardType {
  MASTER_CARD = 'MASTERCARD',
  VISA = 'VISA',
};

hideProcessingScreen()

  • hideProcessingScreen() hides processing screen.