Interface D1PayWallet
-
public interface D1PayWalletEntry point to manage the D1Pay wallet- Since:
- 2.0.0
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddDigitalCard(String cardID, D1Task.Callback<Void> callback)Adds a digital card for a givencardIDfor D1 Pay.voidgetCachedCardMetadata(String cardID, D1Task.Callback<CardMetadata> callback)This API is designed to retrieve fundamental cached card metadata that is used during D1 Pay transactions.voidgetCardDigitizationState(String cardID, D1Task.Callback<CardDigitizationState> callback)Gets the digital card state of a givencardIDfor D1 Pay.voidgetDefaultPaymentDigitalCard(D1Task.Callback<String> callback)Retrieves the card identifiercardIDof default D1 Pay digital card.voidgetDigitalCard(String cardID, D1Task.Callback<D1PayDigitalCard> callback)Retrieves D1 Pay digital card for a givencardID.voidgetDigitalCardList(D1Task.Callback<Map<String,D1PayDigitalCard>> callback)Retrieves D1 Pay digital card list.voidgetTransactionHistory(String cardID, D1Task.Callback<TransactionHistory> callback)Retrieves D1 Pay digital card's transaction history for a givencardID.voidregisterD1PayDataChangedListener(D1PayDataChangedListener listener)Registers to receive notification for the following events: Digitization is completed.voidreplenish(String cardID, boolean isForced, DeviceAuthenticationCallback authCallback, D1Task.Callback<Void> completionCallback)To replenish the given card identifier.voidreplenishODA(String cardID, D1Task.Callback<Void> callback)For Visa only.static voidreset(Context context)It is recommended to call this API when the Mobile Payment Application (MPA) receives an unrecoverable errorD1Exception.ErrorCode.ERROR_D1PAY_UNRECOVERABLE, in order to reset all the internal local data, and retry the operation.voidsetContactlessTransactionAllowed(boolean allowTransaction)This API is used to enable contactless payment.voidsetDefaultPaymentDigitalCard(String cardID, D1Task.Callback<Void> callback)Sets the DigitalizedCard as the default payment card.voidsetPaymentExperience(D1PaymentExperience experience)This API is used to switch payment experience.voidstartManualModePayment(String cardID)To start proximity payment from the application.voidunRegisterD1PayDataChangedListener()Unregisters D1PayDataChangedListener that has been registered previouslyvoidunsetDefaultPaymentDigitalCard(D1Task.Callback<Void> callback)Remove the current default D1 Pay digital card.voidupdateDigitalCard(String cardID, D1PayDigitalCard d1PayDigitalCard, CardAction cardAction, D1Task.Callback<Boolean> callback)Update D1 Pay digital card status for acardID
-
-
-
Method Detail
-
registerD1PayDataChangedListener
void registerD1PayDataChangedListener(@NonNull D1PayDataChangedListener listener)
Registers to receive notification for the following events:- Digitization is completed. It is in the Active state.
- D1Pay Digital Card state is updated.
- Virtual/Physical Card is renewed.
Note: Only foreground applications will be notified.
Therefore, the application should update the token status not only when receiving this callback but also when it launches or returns to the foreground.
- Parameters:
listener- The callback to receive the notification from SDK.
-
unRegisterD1PayDataChangedListener
void unRegisterD1PayDataChangedListener()
Unregisters D1PayDataChangedListener that has been registered previously- See Also:
D1PayDataChangedListener
-
addDigitalCard
void addDigitalCard(@NonNull String cardID, @NonNull D1Task.Callback<Void> callback)
Adds a digital card for a givencardIDfor D1 Pay. If this is the first card, it will be automatically set as the default card for payment.D1Task.login(byte[], D1Task.Callback)is required before invoking this API.Integrator must register listener on
registerD1PayDataChangedListener(D1PayDataChangedListener)to receive notification when the operation is completed.- Parameters:
cardID- The card identifier.callback- The callback for the intermediate result. As this API requires a push notification, the final status will be given onD1PayDataChangedListener. The returned argument ofD1Task.Callback.onSuccess(Object)is always null when the process is successful.
Possible errors:
D1Exception.ErrorCode.ERROR_NOT_LOGGED_IND1Exception.ErrorCode.ERROR_NOT_AUTHORIZEDD1Exception.ErrorCode.ERROR_DEVICE_ENVIRONMENT_UNSAFED1Exception.ErrorCode.ERROR_CORED1Exception.ErrorCode.ERROR_D1PAYD1Exception.ErrorCode.ERROR_D1PAY_NO_PUSH_TOKEND1Exception.ErrorCode.ERROR_D1PAY_DIGITIZATION_COMPLETEDD1Exception.ErrorCode.ERROR_D1PAY_DELETION_IN_PROGRESSD1Exception.ErrorCode.ERROR_D1PAY_MOBILE_GATEWAYD1Exception.ErrorCode.ERROR_D1PAY_PROVISIONING_SERVICE
-
getCardDigitizationState
void getCardDigitizationState(@NonNull String cardID, @NonNull D1Task.Callback<CardDigitizationState> callback)
Gets the digital card state of a givencardIDfor D1 Pay.This API will trigger the resynchronisation of the card id after a successful card renewal if the following conditions are satisfied:
- User is logged in.
- Card renewal is successful.
- Contactless Payment is not ongoing.
- There is at least one card exists in the wallet.
- Card Renewal is performed after last resynchronisation.
- Last resynchronisation was performed more than 30 minutes ago.
D1Task.login(byte[], D1Task.Callback)is not required before invoking this API. When user is not logged in or user login is required, resynchronisation of the card id will be skipped even if it is required but retrieves D1 Pay digital card state for a givencardID.- Parameters:
cardID- The card identifier.callback- The callback for theCardDigitizationStatestate. The returned argument of theD1Task.Callback.onSuccess(Object)is non-null when the process is successful.
Possible errors:
D1Exception.ErrorCode.ERROR_D1PAY_NOT_SUPPORTEDD1Exception.ErrorCode.ERROR_DEVICE_ENVIRONMENT_UNSAFED1Exception.ErrorCode.ERROR_CORED1Exception.ErrorCode.ERROR_D1PAYD1Exception.ErrorCode.ERROR_D1PAY_DELETION_IN_PROGRESSD1Exception.ErrorCode.ERROR_CARD_NOT_FOUND
D1Exception.ErrorCode.ERROR_CARD_NOT_FOUNDerror code could be returned if this API is invoked using old cardId after resynchronisation of the card id is successful.
-
reset
static void reset(@NonNull Context context) throws D1Exception
It is recommended to call this API when the Mobile Payment Application (MPA) receives an unrecoverable errorD1Exception.ErrorCode.ERROR_D1PAY_UNRECOVERABLE, in order to reset all the internal local data, and retry the operation.- Parameters:
context- The application context.- Throws:
D1Exception- If the error occurs while resetting the local storage, it is recommended that the application to stop calling the D1 Pay API and ask for technical support with the detailed log.- See Also:
D1Exception.ErrorCode.ERROR_D1PAY_UNRECOVERABLE
-
replenish
void replenish(@NonNull String cardID, boolean isForced, @NonNull DeviceAuthenticationCallback authCallback, @NonNull D1Task.Callback<Void> completionCallback)
To replenish the given card identifier.D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.- Parameters:
cardID- The card identifier.isForced- The replenishment is forced or not.authCallback- The callback for device CVM (if needed). For VISA only!completionCallback- The callback for the replenishment result. The returned argument of theD1Task.Callback.onSuccess(Object)is always null when the process is successful.
Possible errors:
D1Exception.ErrorCode.ERROR_CARD_NOT_FOUNDD1Exception.ErrorCode.ERROR_DEVICE_ENVIRONMENT_UNSAFED1Exception.ErrorCode.ERROR_CORED1Exception.ErrorCode.ERROR_D1PAYD1Exception.ErrorCode.ERROR_D1PAY_PROVISIONING_SERVICED1Exception.ErrorCode.ERROR_D1PAY_VISA_REPLENISHMENT_AUTHENTICATIOND1Exception.ErrorCode.ERROR_D1PAY_VISA_REPLENISHMENT_PREPARATION
-
replenishODA
void replenishODA(@NonNull String cardID, @NonNull D1Task.Callback<Void> callback)
For Visa only.Requests Offline Data Authentication (ODA) replenishment for the given card.
D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.- Parameters:
cardID- The card identifier.callback- The callback for the replenishment result. The returned argument of theD1Task.Callback.onSuccess(Object)is always null when the process is successful.
Possible errors:
- Since:
- 2.2.0
-
getDigitalCard
void getDigitalCard(@NonNull String cardID, @NonNull D1Task.Callback<D1PayDigitalCard> callback)
Retrieves D1 Pay digital card for a givencardID.This API will trigger the resynchronisation of the card id after a successful card renewal if the following conditions are satisfied:
- User is logged in.
- Card renewal is successful.
- Contactless Payment is not ongoing.
- There is at least one card exists in the wallet.
- Card Renewal is performed after last resynchronisation.
- Last resynchronisation was performed more than 30 minutes ago.
D1Task.login(byte[], D1Task.Callback)is not required before invoking this API. When user is not logged in or user login is required, resynchronisation of the card id will be skipped even if it is required but retrieves D1 Pay digital card for a givencardID.- Parameters:
cardID- The card identifier.callback- The callback for the result. The returned argument of theD1Task.Callback.onSuccess(Object)is non-null when the process is successful.
Possible errors:
D1Exception.ErrorCode.ERROR_CARD_NOT_FOUNDD1Exception.ErrorCode.ERROR_DEVICE_ENVIRONMENT_UNSAFED1Exception.ErrorCode.ERROR_CORED1Exception.ErrorCode.ERROR_D1PAYD1Exception.ErrorCode.ERROR_D1PAY_MOBILE_GATEWAYD1Exception.ErrorCode.ERROR_D1PAY_VISA_REPLENISHMENT_AUTHENTICATION
D1Exception.ErrorCode.ERROR_CARD_NOT_FOUNDerror code could be returned if this API is invoked using old cardId after resynchronisation of the card id is successful.
-
getDigitalCardList
void getDigitalCardList(@NonNull D1Task.Callback<Map<String,D1PayDigitalCard>> callback)
Retrieves D1 Pay digital card list.This API will trigger the resynchronisation of the card id after a successful card renewal if the following conditions are satisfied:
- User is logged in.
- Card renewal is successful.
- Contactless Payment is not ongoing.
- There is at least one card exists in the wallet.
- Card Renewal is performed after last resynchronisation.
- Last resynchronisation was performed more than 30 minutes ago.
D1Task.login(byte[], D1Task.Callback)is not required before invoking this API. When the user is not logged in or user login is required, resynchronisation of the card id will be skipped even if it is required but retrieves D1 Pay digital list.- Parameters:
callback- The callback for the result which contains the map ofcardIDandD1PayDigitalCard. The returned argument of theD1Task.Callback.onSuccess(Object)is non-null when the process is successful.
Possible errors:
-
getDefaultPaymentDigitalCard
void getDefaultPaymentDigitalCard(@NonNull D1Task.Callback<String> callback)
Retrieves the card identifiercardIDof default D1 Pay digital card.D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.- Parameters:
callback- The callback for the result containingcardIDif default card has been set previously, or null if it has not been set.
Possible errors:
-
setDefaultPaymentDigitalCard
void setDefaultPaymentDigitalCard(@NonNull String cardID, @NonNull D1Task.Callback<Void> callback)
Sets the DigitalizedCard as the default payment card.D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.- Parameters:
cardID- The card identifiercallback- The callback for result. The returned argument of theD1Task.Callback.onSuccess(Object)is always null when the process is successful.
Possible errors:
-
unsetDefaultPaymentDigitalCard
void unsetDefaultPaymentDigitalCard(@NonNull D1Task.Callback<Void> callback)
Remove the current default D1 Pay digital card.D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.- Parameters:
callback- The callback for result. The returned argument of theD1Task.Callback.onSuccess(Object)is null when the process is successful.
Possible errors:
-
updateDigitalCard
void updateDigitalCard(@NonNull String cardID, @NonNull D1PayDigitalCard d1PayDigitalCard, @NonNull CardAction cardAction, @NonNull D1Task.Callback<Boolean> callback)
Update D1 Pay digital card status for acardID-
D1Task.login(byte[], D1Task.Callback)is required before invoking this API. -
is required on initialization {@link D1Task#configure(D1Task.ConfigCallback, D1Params...)}before invoking this API.
- Parameters:
cardID- The card identifier.d1PayDigitalCard- The digital card received fromgetDigitalCard(String, D1Task.Callback)orgetDigitalCardList(D1Task.Callback).cardAction- The card action to be performed: active, suspend or delete.callback- The callback is returned when the command is sent successfully to the server. The final status update is sent through push notification onD1PayDataChangedListener. The returned argument of theD1Task.Callback.onSuccess(Object)is non-null when the process is successful.
Possible errors:
-
-
startManualModePayment
void startManualModePayment(@NonNull String cardID)
To start proximity payment from the application.D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.This API allows payment to be manually triggered when the end user selects a card manually.
Sets the listener by calling
D1PayConfigParams.setManualModeContactlessTransactionListener(ContactlessTransactionListener)to listen to the transaction events:- Parameters:
cardID- The card identifier.- Since:
- 2.2.0
-
setContactlessTransactionAllowed
void setContactlessTransactionAllowed(boolean allowTransaction)
This API is used to enable contactless payment.Contactless payment is enabled by default whenever the application runs in the foreground or when the service runs in the background. By using this API, the application can block contactless payment for any transaction, unless explicitly requested by the end user. Hence, the application needs to enable payment for every transaction request and disable it once the transaction has been completed or cancelled.
- Parameters:
allowTransaction- set tofalseto forbid contactless payment.- Since:
- 2.2.0
-
getTransactionHistory
void getTransactionHistory(@NonNull String cardID, @NonNull D1Task.Callback<TransactionHistory> callback)
Retrieves D1 Pay digital card's transaction history for a givencardID.D1Task.login(byte[], D1Task.Callback)is not required before invoking this API.- Parameters:
cardID- The card identifier.callback- The callback for the result. The returned argument of theD1Task.Callback.onSuccess(Object)is non-null when the process is successful.
Possible errors:
D1Exception.ErrorCode.ERROR_CORE Which can be due to storage (unlikely) or network failure
D1Exception.ErrorCode.ERROR_CARD_NOT_FOUND Which can be due to card has not been digitization
D1Exception.ErrorCode.ERROR_DEVICE_ENVIRONMENT_UNSAFED1Exception.ErrorCode.ERROR_D1PAY_MOBILE_GATEWAYD1Exception.ErrorCode.ERROR_D1PAY_PROVISIONING_SERVICE
- Since:
- 2.3.0
-
setPaymentExperience
void setPaymentExperience(D1PaymentExperience experience)
This API is used to switch payment experience.D1PaymentExperience.ONE_TAP_ENABLEDis used by default. Application can change the mode to allowD1PaymentExperience.TWO_TAP_ALWAYSexperience.- Parameters:
experience- mode of payment experience- Since:
- 2.3.0
-
getCachedCardMetadata
void getCachedCardMetadata(@NonNull String cardID, @NonNull D1Task.Callback<CardMetadata> callback)
This API is designed to retrieve fundamental cached card metadata that is used during D1 Pay transactions. This API retrieves the last 4 digits of the PAN andSchemeto ensure that the information is always available. If the cached card metadata is not synchronised with the backend, this API may not return data forCard State, card expiry date and card artwork. If this API does not provide the required details, the integrator can call theGetCardMetadataAPI to update the local cache. Authentication or login credentials are not required to access and utilize this API.- Parameters:
cardID- The card identifiercallback- The callback for the result. When it succeeds, the returned argument of theD1Task.Callback.onSuccess(Object)is always null.
Possible errors:
- Since:
- 4.0.0
-
-