Class D1PayConfigParams

java.lang.Object
com.thalesgroup.gemalto.d1.D1Params
com.thalesgroup.gemalto.d1.d1pay.D1PayConfigParams

public abstract class D1PayConfigParams extends D1Params
The configuration parameters for D1 Pay initializations.
Since:
2.0.0
  • Field Details

    • maxTransactionRetryLimit

      protected static int maxTransactionRetryLimit
    • transactionRetryLimitTimeout

      protected static long transactionRetryLimitTimeout
  • Constructor Details

    • D1PayConfigParams

      protected D1PayConfigParams()
  • Method Details

    • getInstance

      @NonNull public static D1PayConfigParams getInstance()
      Retrieves the instance of this D1PayConfigParams
      Returns:
      The instance
    • setKeyValidityPeriod

      public abstract void setKeyValidityPeriod(int validityPeriod)

      Sets the key validity period


      Warning: Value shall not be changed if you have enrolled the card.

      If the underlying keystore is already created with the given key validity then the new configuration will not be taken. If you wish to have a different validity period, the application has to wipe and re-enroll the entire wallet.

      Parameters:
      validityPeriod - The wait period (in seconds) between user authentication and tap to POS during a transaction. Must be from 0 to 300. Default value is 45.
      See Also:
    • setDomesticCurrencyCode

      public abstract void setDomesticCurrencyCode(int currencyCode)

      Sets the domestic currency code


      Warning: It is not advised to change this value as there are side effects for Low-Value-Payment (LVT) accumulation.

      During a LVT, it accumulates the amount and triggers an authentication when it exceeds maximum allowed amount set by setMaxCumulativeAmountForLVT(long). Only transaction that matches the given currency will be subject to accumulation. When the currency is changed, the existing accumulation is converted to the selected currency, and the SDK simply adds it on top of existing value. Note: This may affect the accuracy of your accumulation.

      Parameters:
      currencyCode - The domestic currency code (ISO-4217 Standard) used for local transaction. Default code is 978 (EUR).
    • setTransitExperienceAllowed

      public abstract void setTransitExperienceAllowed(boolean allowed)
      In D1 Pay, "Transit experience" is a transit transaction that does not require end user authentication. If the transit experience is enabled, the transaction at transit gateway is performed in one TAP without CDCVM.
      End user does not need to provide any biometric or device credentials at the transit gateway but the consumer must turn the screen on to allow transaction.

      A transaction is identified as a transit transaction:

      • For Mastercard, as a 0&euro transaction with an eligible Merchant Category Code as defined in the MCBP specification.
      • For Visa, as a 0&euro transaction with ODA.
      For Mastercard, the card profile must support the FLEXIBLE_CDCVM CVM model.
      For Visa, a dedicated configuration is required at D1 Pay server.
      Parameters:
      allowed - true, the transit transaction does not have CDCVM; false, the transit transaction has a CDCVM.
    • setMaxConsecutivePaymentsForLVT

      public abstract void setMaxConsecutivePaymentsForLVT(int maxConsecutiveLVT)
      Sets the maximum consecutive payments allowed for Low Value Transaction (LVT).
      Parameters:
      maxConsecutiveLVT - The maximum number of consecutive low value transactions allowed before device authentication is required. Maximum allowed value is 50. The default value is 0, so LVT behavior is disabled.
    • setSingleTransactionAmountLimitForLVT

      public abstract void setSingleTransactionAmountLimitForLVT(long singleLVTAmount)
      Sets the single transaction amount limit for Low Value Transaction (LVT).
      Parameters:
      singleLVTAmount - The threshold amount for LVT with a `long` data type. If the transaction amount exceeds this limit, the terminal will treat the transaction as an HVT instead of a LVT, and CDCVM will be notified. The default value is 0, so LVT behavior is disabled.
      For example:
      • If Currency is 'SouthKoreanWon - KRW' (decimal is 0), the amount of:
        • 10 means 10 KRW
        • 100 means 100 KRW
        • 1000 means 1000 KRW
      • If Currency is 'Euro' (decimal is 2), the amount of:
        • 1 means 0.01 EUR
        • 10 means 0.10 EUR
        • 100 means 1.00 EUR
        • 1000 means 10.00 EUR
      • If Currency is 'JOD' (decimal is 3), the amount of:
        • 1 means 0.001 JOD
        • 10 means 0.010 JOD
        • 100 means 0.100 JOD
        • 1000 means 1.000 JOD
    • setMaxCumulativeAmountForLVT

      public abstract void setMaxCumulativeAmountForLVT(long maxCumulativeLVTAmount)
      Sets the maximum cumulative amount allowed for Low Value Transaction (LVT).
      Parameters:
      maxCumulativeLVTAmount - The maximum cumulative amount of low value consecutive transactions with a `long` data type. If the accumulated amount of all low value consecutive transactions exceeds this value, the SDK will trigger the CDCVM authentication. The default value is 0, so LVT behavior is disabled. All transactions will require a CDCVM authentication from the end user.<
      For example:
      • If Currency is 'SouthKoreanWon - KRW' (decimal is 0), the amount of:
        • 10 means 10 KRW
        • 100 means 100 KRW
        • 1000 means 1000 KRW
      • If Currency is 'Euro' (decimal is 2), the amount of:
        • 1 means 0.01 EUR
        • 10 means 0.10 EUR
        • 100 means 1.00 EUR
        • 1000 means 10.00 EUR
      • If Currency is 'JOD' (decimal is 3), the amount of:
        • 1 means 0.001 JOD
        • 10 means 0.010 JOD
        • 100 means 0.100 JOD
        • 1000 means 1.000 JOD
    • setOnlinePinPriority

      public abstract void setOnlinePinPriority(boolean priority)
      For Visa only.

      In cases where the profile supports multiple CVMs (such as online PIN, and CDCVM), D1 Pay will provide the support based on the default "CDCVM Priority" as defined in VCPCS. Using this API, mobile application is able to select the "Online PIN" priority as defined in VCPCS.

      Parameters:
      priority - A flag to set online PIN as priority.
    • setPollingIntervalForDigitization

      public abstract void setPollingIntervalForDigitization(int pollingInterval)
      Deprecated.
      This API is deprecated as of version 4.1.0. With the introduction of this version, digitization is performed without push notifications, eliminating the need for push notifications or polling to complete the digitization process. Therefore, this API is no longer necessary. Integrator shall rely on the success callback of D1Task.D1PayWallet.addDigitalCard() to complete the digitization process.
      Sets the polling interval.

      Polling time interval for D1PayWallet.addDigitalCard(String, D1Task.Callback). Polling time is only used when there is an issue with push notifications. Default value is set to 15 seconds.

      Parameters:
      pollingInterval - The polling interval (in seconds).
    • setPollingEndTimeForDigitization

      public abstract void setPollingEndTimeForDigitization(int pollingEndTime)
      Deprecated.
      This API is deprecated as of version 4.1.0. With the introduction of this version, digitization is performed without push notifications, eliminating the need for push notifications or polling to complete the digitization process. Therefore, this API is no longer necessary. Integrator shall rely on success callback of D1Task.D1PayWallet.addDigitalCard() for completing of digitization process.
      Sets the polling end time which is used when there is an issue with push notifications.

      The digitization of D1 Pay may take more than one minute but less than five minutes. Default value is set to 300s.

      Parameters:
      pollingEndTime - The time when the polling ends (in seconds).
    • setContactlessTransactionListener

      public abstract void setContactlessTransactionListener(@NonNull ContactlessTransactionListener contactlessListener)
      Sets the default contactless transaction listener to handle the payment transaction.
      Parameters:
      contactlessListener - The default listener.
      See Also:
    • setManualModeContactlessTransactionListener

      public abstract void setManualModeContactlessTransactionListener(@NonNull ContactlessTransactionListener contactlessListener)
      Sets the contactless transaction listener to handle the manual payment transaction.
      Parameters:
      contactlessListener - The manual mode listener.
      Since:
      2.2.0
      See Also:
    • setReplenishAuthenticationUIStrings

      public abstract void setReplenishAuthenticationUIStrings(@NonNull String title, @NonNull String subtitle, @NonNull String description, @NonNull String negativeButton)
      For Visa only.

      Sets the UI strings to be shown on the device authentication screen (if required) during the replenishment of credentials.

      Parameters:
      title - The title text.
      subtitle - The sub-title text.
      description - The description text.
      negativeButton - The negative button text.
      See Also:
    • getContactlessTransactionListener

      @NonNull public abstract ContactlessTransactionListener getContactlessTransactionListener()
      Retrieves the default contactless transaction listener.
      Returns:
      The default contactless transaction listener.
    • getManualModeContactlessTransactionListener

      @Nullable public abstract ContactlessTransactionListener getManualModeContactlessTransactionListener()
      Retrieves the manual payment contactless transaction listener.
      Returns:
      The contactless transaction listener for manual mode. This will be null if the setManualModeContactlessTransactionListener(ContactlessTransactionListener) has not been invoked yet.
      Since:
      2.2.0
    • setTransactionRetryLimit

      public static void setTransactionRetryLimit(int maxRetryLimit)
      Allows the maximum number of retries to be set for a contactless payment transaction performed by a POS terminal when the connection is interrupted. In other words, the `maxRetryLimit` defines the maximum number of times the onDeactivated() callback is allowed from the system before the termination of an NFC connection. by the SDK (but signaled by ContactlessPaymentServiceListener.onTransactionInterrupted(int, String, int)) before calling onError with POS_COMM_DISCONNECTED. Default value is set to 3 and this means that the SDK will throw a `POS_COMM_DISCONNECTED` error after the first three occurrences.
      Parameters:
      maxRetryLimit - Value between 0 and 10. Default value is set to 3.
      Since:
      4.1.0
    • setTransactionRetryTimeout

      public static void setTransactionRetryTimeout(long retryTimeout)
      Defines the time (in seconds) to wait before the POS terminal can perform the transaction again. If the transaction retry does not progress (APDU resent by POS) within this interval then `onError()` callback will be triggered.
      Parameters:
      retryTimeout - A value between 500 and 10000 in milliseconds. Default value is set to 2000.
      Since:
      4.1.0