Class D1PayConfigParams


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

      • D1PayConfigParams

        protected D1PayConfigParams()
    • Method Detail

      • getInstance

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

        public abstract void setKeyValidityPeriod​(int validityPeriod)

        Set 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:
        D1PayWallet.reset(Context)
      • setDomesticCurrencyCode

        public abstract void setDomesticCurrencyCode​(int currencyCode)

        Set 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 currency is changed, existing accumulation is under a different currency, SDK simply accumulates on top of existing value without currency conversion. It might impact 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 the transit transaction without consumer authentication. If transit experience is allowed, the transaction at transit gateway is performed in one TAP without CDCVM.
        Consumer does not need to provide any biometric or device credentials at transit gateway, consumer must turn the screen on to allow transaction.

        A transaction is identified as transit transaction:

        • For Mastercard, as 0€ transaction with eligible Merchant Category Code as defined in MCBP specification
        • For VISA, as a 0€ transaction with ODA.
        For Mastercard, the card profile must support be a FLEXIBLE_CDCVM CVM model.
        For VISA, it's requiring a dedicated configuration at D1 Pay server.
        Parameters:
        allowed - true, Transit will not have CDCVM; false, Transit will have CDCVM
      • setMaxConsecutivePaymentsForLVT

        public abstract void setMaxConsecutivePaymentsForLVT​(int maxConsecutiveLVT)
        Set the max consecutive payments for LVT (Low Value Transaction)
        Parameters:
        maxConsecutiveLVT - maximum allowed consecutive low value transactions before device authentication will be asked. Maximum allowed value is 50. Default value is 0 so LVT behavior is disabled.
      • setSingleTransactionAmountLimitForLVT

        public abstract void setSingleTransactionAmountLimitForLVT​(long singleLVTAmount)
        Set the single transaction amount limit for LVT (Low Value Transaction)
        Parameters:
        singleLVTAmount - Amount with supported 'long' data type. Threshold amount value for LVT. Even if the terminal decides it is a LVT, if the transaction amount exceeds this limit, it will be treated as a HVT transaction and CDCVM will be asked. Default value is 0 so LVT behavior is disabled.
        For example:
        • If Currency is 'SouthKoreanWon - KRW' and decimal is 0, amount to be set with
          • 10 => 10 KRW
          • 100 => 100 KRW
          • 1000 => 1000 KRW
        • If Currency is 'Euro' and decimal is 2, amount to be set with
          • 1 => 0.01 EUR
          • 10 => 0.10 EUR
          • 100 => 1.00 EUR
          • 1000 => 10.00 EUR
        • If Currency is 'JOD' and decimal is 3, amount to be set with
          • 1 => 0.001 JOD
          • 10 => 0.010 JOD
          • 100 => 0.100 JOD
          • 1000 => 1.000 JOD
      • setMaxCumulativeAmountForLVT

        public abstract void setMaxCumulativeAmountForLVT​(long maxCumulativeLVTAmount)
        Set the max cumulative amount for LVT (Low Value Transaction)
        Parameters:
        maxCumulativeLVTAmount - Amount with supported 'long' data type. Accumulated amount of all low value consecutive transactions is more than this value, SDK will trigger CDCVM authentication. If set to 0 all transactions will require CDCVM authentication from user. Default value is 0 so LVT behavior is disabled.
        For example:
        • If Currency is 'SouthKoreanWon - KRW' and decimal is 0, amount to be set with
          • 10 => 10 KRW
          • 100 => 100 KRW
          • 1000 => 1000 KRW
        • If Currency is 'Euro' and decimal is 2, amount to be set with
          • 1 => 0.01 EUR
          • 10 => 0.10 EUR
          • 100 => 1.00 EUR
          • 1000 => 10.00 EUR
        • If Currency is 'JOD' and decimal is 3, amount to be set with
          • 1 => 0.001 JOD
          • 10 => 0.010 JOD
          • 100 => 0.100 JOD
          • 1000 => 1.000 JOD
      • setOnlinePinPriority

        public abstract void setOnlinePinPriority​(boolean priority)
        For VISA only.

        In case of profile supporting several CVM (Online PIN, CDCVM), D1 Pay is supporting by default "CDCVM Priority" as defined in VCPCS. Using this API, the mobile banking application could select "Online PIN" priority as defined in VCPCS.

        Parameters:
        priority - Flag to set online pin as priority
      • setPollingIntervalForDigitization

        public abstract void setPollingIntervalForDigitization​(int pollingInterval)
        Set the polling interval.

        Polling time interval for D1PayWallet.addDigitalCard(String, D1Task.Callback). Polling time is only used if there is issue on Push Notification. Default value is 15s.

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

        public abstract void setPollingEndTimeForDigitization​(int pollingEndTime)
        Set the polling end time which is used when there is issue on Push Notification.

        D1 Pay digitization may take quite some time, which may be more than 1 minute but must be less than 5 minutes. Default value is 300s.

        Parameters:
        pollingEndTime - The polling end time (in seconds)
      • setNotification

        public abstract void setNotification​(@NonNull
                                             Notification notification)
        Set the notification in order to start foreground service required by SDK

        Parameters:
        notification - The notification to be shown
      • setManualModeContactlessTransactionListener

        public abstract void setManualModeContactlessTransactionListener​(@NonNull
                                                                         ContactlessTransactionListener contactlessListener)
        Set the contactless transaction listener to handle the manual payment transaction.
        Parameters:
        contactlessListener - The manual mode listener
        See Also:
        ContactlessTransactionListener
      • getContactlessTransactionListener

        @NonNull
        public abstract ContactlessTransactionListener getContactlessTransactionListener()
        Retrieve the default contactless transaction listener
        Returns:
        The default contactless transaction listener