Android SDK - Logging Utility

DOCS

Last updated: Aug 15th, 7:34am

The com.paydiant.android.common.util.PaydiantLoggingUtility utility class exposes the functionality that allows the app to inform the WLW platform of its activity based on key event triggers, such as payment, logout, data retrieval, etc. This logging information is critical to providing accurate and efficient technical support and troubleshooting.

As of SDK version 4.6, the WLW Logging Utility automatically logs all events that pass through the mobile gateway, so the developer does not need to specifically configure events and event parameters to be logged or determine when the logs should be submitted.

Developers have the option of disabling this internal logging feature in favor of defining a custom approach to log messages for each SDK event. The Android SDK also supports a hybrid approach to SDK event logging, in which custom logging can be used in conjunction with internal logging in order to provide additional information. This chapter discusses the methods that are exposed in the SDK that allow developers to leverage WLW’s internal logging as well as the custom logging mechanisms to ensure that the most useful information is captured for efficient and effective technical support and troubleshooting.

Alternatively, developers can bypass the WLW Logging Utility entirely and implement a logging utility that is more specifically tailored to the business logic required by the issuer. Refer to the Custom Logging Utility, for details about the SDK methods and logging format specification required to initialize an alternative logging utility class.

Using the WLW Logging Utility

The com.paydiant.android.common.util.PaydiantLoggingUtility class uses the com.paydiant.android.ui.service.logging.PaydiantLoggingService class to submit log entries.

To add the functionality of provided by the WLW Logging Utility, add the PaydiantLoggingService class as a service to the AndroidManifest.xml.

    1< ?xml version="1.0" encoding="utf-8"? >
    2< manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    3...
    4< application ... >
    5...
    6< service android:name = "com.paydiant.android.ui.service.logging.PaydiantLoggingService" / >
    7...
    8< /application >
    9< /manifest >

    As of SDK 5.10, the app no longer needs to initialize the loggin utility explicitly. If the service is included in the AndroidManifest, the SDK will automatically initialize the class.

    Setting Error Display Messages for Internally Logged Events

    During a failure event (such as an exception thrown during a payment), the error message displayed to the wallet owner must be set within the failure logging message for internally logged events. Otherwise, the SDK will have no means of connecting the failure event to the displayed error and, should the user contact tech support and describe the behavior in the app, the logs will have no record of the error message that the user describes, making troubleshooting very difficult.

    WLW exposes an Add Failed Event Log Message method in the PaydiantLoggingUtility to pass the error display message in the failure logging entry. Invoke this call immediately upon a failure event (even before actually displaying the error message) because certain events (such as payment and login failures) are configured to submit the logging entry immediately upon occurrence and any delays in setting the error message may result in its omission from the logged entry.

    Disable Internal Logging for Select Events

    To implement custom logging for individual events, but keep internal logging for other events, set setCustomLoggingEnabled=TRUE immediately prior to calling the relevant event’s SDK method, then set setCustomLoggingEnabled=FALSE after handling the success and failure callbacks for the method.

    Logging Event Types

    The WLW Logging Utility automatically creates log entry messages for the event types defined in the com.paydiant.android.core.enums.PaydiantLoggingEventType enum class.

    The following table provides the list of default event types, which developers can reference for use when providing custom logging implementations.

    Some events take parameters that must be populated with values returned by the server upon event completion. Events for which parameter values are required list the required parameters in the description and each parameter is a hyperlink to its definition in Table 6.

    Logging utility event types

    EventDescription
    LOGIN_SUCCESSUser authentication and login succeeded.
    LOGIN_FAILEDUser authentication and login failed.
    LOGOFF_SUCCESSUser logout succeeded.
    LOGOFF_FAILUser logout failed.
    SCAN_SUCCESSThe app successfully captured the token. Provide the token value as the SCAN_EVENT_TOKEN event parameter.
    SCAN_FAILThe app failed to capture the token.
    TX_INFO_RETRIEVE_SUCCESSThe app successfully retrieved the transaction information for a token. Populate the following event parameters with the returned values:
    TRANSACTION_EVENT_TX_TYPE
    TRANSACTION_EVENT_REF_ID
    TRANSACTION_EVENT_MERCHANT_NAME
    TRANSACTION_EVENT_STORE_LOCATION_NAME
    TX_INFO_RETRIEVE_FAILThe transaction information was not retrieved.
    PAYMENT_SUCCESSThe app successfully completed a payment transaction. Populate the following event parameters with the returned values:
    TRANSACTION_EVENT_REF_ID
    TRANSACTION_EVENT_PAYMENT_TOTAL
    PAYMENT_FAILThe payment transaction failed.
    CASH_ACCESS_SUCCESSThe app successfully completed a cash access transaction. Populate the following event parameters with the returned values:
    TRANSACTION_EVENT_REF_ID
    TRANSACTION_EVENT_PAYMENT_TOTAL
    CASH_ACCESS_FAILThe cash access transaction failed.
    REFUND_SUCCESSThe app successfully completed a refund transaction. Populate the following event parameters with the returned values:
    TRANSACTION_EVENT_REF_ID
    TRANSACTION_EVENT_PAYMENT_TOTAL
    REFUND_FAIL
    PAYMENT_CANCEL_SUCCESSThe app successfully cancelled the payment transaction. Populate the following event parameter with the returned value:
    TRANSACTION_EVENT_REF_ID
    PAYMENT_CANCEL_FAILThe payment cancellation failed.
    CASH_ACCESS_CANCEL_SUCCESSThe app successfully cancelled the cash access transaction. Populate the following event parameter with the returned value:
    TRANSACTION_EVENT_REF_ID
    CASH_ACCESS_CANCEL_FAIL
    REFUND_CANCEL_SUCCESSThe app successfully cancelled the refund transaction. Populate the following event parameter with the returned value:
    TRANSACTION_EVENT_REF_ID
    REFUND_CANCEL_FAILThe refund cancellation failed.
    ACCOUNTS_RETRIEVE_SUCCESSThe app successfully retrieved the payment accounts.
    ACCOUNTS_RETRIEVE_FAILThe payment accounts could not be retrieved.
    ACCOUNTS_REFRESH_SUCCESSThe app successfully refreshed all payment accounts.
    ACCOUNTS_REFRESH_FAILThe payment accounts could not be refreshed.
    ACCOUNT_REFRESH_SUCCESSThe app successfully retrieved the selected payment account.
    ACCOUNT_REFRESH_FAILThe selected payment account could not be retrieved.
    RECEIPTS_RETRIEVE_SUCCESSThe app successfully retrieved all receipts. Populate the following event parameter with the returned value:
    RECEIPTS_EVENT_COUNT
    RECEIPTS_RETRIEVE_FAILThe receipts could not be retrieved.
    RECEIPTS_REFRESH_SUCCESSThe app successfully refreshed the receipts list.
    RECEIPTS_REFRESH_FAILThe receipts could not be retrieved.
    NFC_SCAN_SUCCESSThe app successfully captured the NFC token. Populate TRANSACTION_EVENT_REF_ID with the token value.
    NFC_SCAN_FAILThe app did not capture the NFC token.
    CONNECTION_LOSTThe heartbeat detection failed.
    DEVICE_STATUS_CHECK_SUCCESSThe device status was successfully obtained. Populate the following event parameters with the returned values:
    DEVICE_STATUS_CHECK_EVENT_ACTIVE
    DEVICE_STATUS_CHECK_EVENT_REGISTERED
    DEVICE_STATUS_CHECK_FAILThe active and registered status of the device was not obtained.
    MFA_RETRIEVE_SUCCESSThe app successfully retrieved the MFA questions.
    MFA_RETRIEVE_FAILThe app was not able to retrieve the MFA questions.
    REGISTER_USER_SUCCESSA new wallet was successfully registered
    REGISTER_USER_FAILThe new wallet registration failed.
    USER_PROFILE_UPDATE_SUCCESSThe user profile was successfully updated.
    USER_PROFILE_UPDATE_FAILThe user profile update failed.
    PASSWORD_UPDATE_SUCCESSThe user password was successfully updated.
    PASSWORD_UPDATE_FAILThe user password update failed.
    PASSCODE_UPDATE_SUCCESSThe user passcode was successfully updated.
    PASSCODE_UPDATE_FAILThe user passcode update failed.
    MFA_UPDATE_SUCCESSThe secret question responses were successfully updated.
    MFA_UPDATE_FAILThe secret question responses update failed.
    EXPIRED_PASSWORD_UPDATE_SUCCESSThe expired password was successfully updated.
    EXPIRED_PASSWORD_UPDATE_FAILThe expired password update failed.
    FORGOT_PASSWORD_RESET_SUCCESSThe forgotten password was successfully reset.
    FORGOT_PASSWORD_RESET_FAILThe forgotten password reset failed.
    FORGOT_PASSCODE_RESET_SUCCESSThe forgotten passcode was successfully reset.
    FORGOT_PASSCODE_RESET_FAILThe forgotten passcode reset failed.
    FORGOT_USERNAME_REQUEST_SUCCESSThe forgotten username was successfully reset.
    FORGOT_USERNAME_REQUEST_FAILThe forgotten username reset failed.
    MFA_SUBMIT_SUCCESSThe responses to the secret questions were successfully submitted.
    MFA_SUBMIT_FAILThe responses to the secret questions were not submitted.
    ACCOUNT_CONFIG_RETRIEVE_SUCCESSThe account configuration values were successfully retrieved.
    ACCOUNT_CONFIG_RETRIEVE_FAILThe account configuration retrieval failed.
    ADD_ACCOUNT_SUCCESSThe new payment account was successfully added.
    ADD_ACCOUNT_FAILThe payment account was not added.
    UPDATE_ACCOUNT_SUCCESSThe payment account was successfully updated.
    UPDATE_ACCOUNT_FAILThe payment account was not updated.
    DELETE_ACCOUNT_SUCCESSThe payment account was successfully deleted.
    DELETE_ACCOUNT_FAILThe payment account was not deleted.
    VERIFY_ACCOUNT_SUCCESSThe payment account was verified.
    VERIFY_ACCOUNT_FAILThe payment account verification failed.
    UNLINK_DEVICE_SUCCESSThe device was successfully disassociated from the wallet.
    UNLINK_DEVICE_FAILThe device disassociation failed.
    WIFI_PROFILE_INSTALL_SUCCESSThe Wi-Fi profile was successfully installed.
    WIFI_PROFILE_INSTALL_FAILThe Wi-Fi profile was not installed.
    OFFER_RETRIEVE_SUCCESSThe offers were successfully obtained.
    OFFER_RETRIEVE_FAILThe offers retrieval failed.
    OFFER_ACTIVATE_SUCCESSThe offer was successfully activated.
    OFFER_ACTIVATE_FAILThe offer activation failed.
    MY_OFFER_RETRIEVE_SUCCESSThe activated offers were successfully retrieved.
    MY_OFFER_RETRIEVE_FAILThe activated offers retrieval failed.
    MY_OFFER_REMOVE_SUCCESSThe offer was successfully deactivated.
    MY_OFFER_REMOVE_FAILThe offer deactivation failed.
    OFFER_CAMPAIGN_RETRIEVAL_USING_COUPON_CODE_SUCCESSThe offer campaign associated with the coupon code was successfully retrieved.
    OFFER_CAMPAIGN_RETRIEVAL_USING_COUPON_CODE_FAILAn offer campaign associated with the coupon code could not be retrieved.
    PASSWORD_POLICY_RETRIEVAL_SUCCESSThe password policy was successfully obtained.
    PASSWORD_POLICY_RETRIEVAL_FAILThe password policy retrieval failed.
    ACCOUNT_BILLING_ADDRESS_RETRIEVE_SUCCESSThe payment account billing addresses were successfully retrieved.
    ACCOUNT_BILLING_ADDRESS_RETRIEVE_FAILThe payment account billing addresses retrieval failed.
    PROFILE_INFO_RETRIEVE_SUCCESSThe user’s profile information was successfully retrieved.
    PROFILE_INFO_RETRIEVE_FAILThe user’s profile retrieval failed.
    USER_SESSION_EXPIREDThe current login session expired.
    DEVICE_DESCRIPTION_UPDATE_SUCCESSThe device description (Android uses the device model as the description) was successfully updated.
    DEVICE_DESCRIPTION_UPDATE_FAILThe device description update failed.
    CUSTOM_LOG_EVENTThis event is reserved for custom log entries.
    ACCOUNT_BALANCE_REFRESH_SUCCESSThe balances for the payment accounts in the wallet were successfully refreshed.
    ACCOUNT_BALANCE_REFRESH_FAILThe balances for the payment accounts in the wallet could not be refreshed.
    ALL_TENDER_TYPES_RETRIEVE_SUCCESSThe supported tender types for the transaction were obtained successfully.
    ALL_TENDER_TYPES_RETRIEVE_FAILThe tender types supported for the transaction could not be retrieved.
    TENDER_TYPE_RETRIEVE_SUCCESSThe specified tender type was successfully retrieved.
    TENDER_TYPE_RETRIEVE_FAILThe specified tender type could not be retrieved.
    ISSUER_LIST_RETRIEVE_SUCCESSThe list of Secure Cloud issuers supported for this wallet was successfully obtained.
    ISSUER_LIST_RETRIEVE_FAILThe list of Secure Cloud issuers could not be retrieved.
    ISSUER_APPLICATION_URL_RETRIEVE_SUCCESSThe URL for the Secure Cloud application for the specified issuer was successfully obtained.
    ISSUER_APPLICATION_URL_RETRIEVE_FAILThe Secure Cloud application URL for the specified issuer could not be retrieved.
    TOKEN_RETRIEVE_SUCCESSThe checkout token was successfully obtained.
    TOKEN_RETRIEVE_FAILThe checkout token could not be retrieved.
    TOKEN_RELEASE_SUCCESSThe checkout token was successfully cleared of its association to the transaction.
    TOKEN_RELEASE_FAILThe checkout token release failed.
    TX_FLOW_METADATA_RETRIEVE_SUCCCESSThe transaction metadata was successfully retrieved.
    TX_FLOW_METADATA_RETRIEVE_FAILRetrieving the transaction metadata failed.
    TX_FLOW_UPDATE_SUCCESSThe transaction was successfully updated with the provided data.
    TX_FLOW_UPDATE_FAILThe transaction could not be updated with the provided data.
    LOYALTY_POINT_BALANCE_REFRESH_SUCCESSThe points balance for the loyalty program was successfully refreshed.
    LOYALTY_POINT_BALANCE_FAILThe loyalty program points balance could not be updated.
    LOYALTY_REGISTRATION_CHECK_SUCCESSThe check to determine whether the wallet is registered for the loyalty program completed successfully.
    LOYALTY_REGISTRATION_CHECK_FAILThe check to determine whether the wallet is registered for the loyalty program failed.
    LOYALTY_PROFILE_METADATA_RETRIEVE_SUCCESSThe metadata properties for the loyalty program profile were successfully obtained.
    LOYALTY_PROFILE_METADATA_RETRIEVE_FAILRetrieval of the metadata properties for the loyalty program failed.
    LOYALTY_REGISTER_SUCCESSThe user was successfully registered for the loyalty program. This event will trigger immediate sending of a log to the platform.
    LOYALTY_REGISTER_FAILThe loyalty registration failed.
    LOYALTY_AVAILABLE_PROGRAMS_RETRIEVE_SUCCESSRetrieval of the loyalty programs for which the user is eligible to register succeeded.
    LOYALTY_AVAILABLE_PROGRAMS_RETRIEVE_FAILRetrieval of the loyalty programs for which the user is eligible to register failed.
    LOYALTY_MY_PROGRAMS_RETRIEVE_SUCCESSRetrieval of the loyalty programs for which the user has already registered succeeded.
    LOYALTY_MY_PROGRAMS_RETRIEVE_FAILRetrieval of the loyalty programs for which the user has already registered failed.
    LOYALTY_PROGRAM_RETRIEVE_SUCCESSThe URI of the requested loyalty program was successfully retrieved.
    LOYALTY_PROGRAM_RETRIEVE_FAILThe URI of the requested loyalty program could not be retrieved.
    LOYALTY_POINTS_RETRIEVE_SUCCESSThe loyalty points for the transaction were successfully retrieved.
    LOYALTY_POINTS_RETRIEVE_FAILThe loyalty points for the transaction could not be retrieved.
    LOYALTY_RECORD_EXT_ACTIVITY_SUCCESSThe external activity associated with the loyalty program was successfully recorded.
    LOYALTY_RECORD_EXT_ACTIVITY_FAILThe external activity could not be recorded.
    LOYALTY_OPTOUT_SUCCESSThe user was successfully unsubscribed from the loyalty program.
    LOYALTY_OPTOUT_FAILThe user’s loyalty program subscription could not be rescinded.
    SPLIT_PARTIAL_PAYMENT_SUCCESSThe partial payment was successfully applied to the transaction.
    SPLIT_PARTIAL_PAYMENT_FAILThe partial payment failed to be applied to the transaction.
    SPLIT_PAYMENT_SUCCESSThe split payment transaction successfully completed (no further balance is due).
    SPLIT_PAYMENT_FAILThe split payment failed.
    CUSTOMER_INFO_RETRIEVE_SUCCESSThe wallet user profile was successfully obtained.
    CUSTOMER_INFO_RETRIEVE_FAILThe wallet user profile could not be retrieved.
    ADDITIONAL_DEVICE_INFO_ADD_SUCCESSThe custom device properties were successfully added.
    ADDITIONAL_DEVICE_INFO_ADD_FAILAdding the custom device properties failed.
    ADDITIONAL_DEVICE_INFO_UPDATE_SUCCESSThe custom device property value(s) was successfully updated.
    ADDITIONAL_DEVICE_INFO_UPDATE_FAILUpdating the custom device property value(s) failed.
    ADDITIONAL_DEVICE_INFO_DELETE_SUCCESSThe custom device properties were successfully deleted.
    ADDITIONAL_DEVICE_INFO_DELETE_FAILDeleting the custom device properties failed.
    ADDITIONAL_DEVICE_INFO_RETRIEVE_SUCCESSThe custom device properties were successfully obtained.
    ADDITIONAL_DEVICE_INFO_RETRIEVE_FAILRetrieving the custom device properties failed.
    GIFT_ACCOUNT_CONFIG_RETRIVE_SUCCESSThe configuration parameters of the gift card payment account were successfully obtained.
    GIFT_ACCOUNT_CONFIG_RETRIEVE_FAILCould not retrieve the configuration parameters of the gift card payment account.
    GIFT_ACCOUNT_LOAD_SUCCESSThe gift card payment account balance was successfully reloaded.
    GIFT_ACCOUNT_LOAD_FAILReloading the gift card balance failed.
    ACCOUNT_RETRIEVE_SUCCESSThe payment account identification was successfully obtained.
    ACCOUNT_RETRIEVE_FAILRetrieval of the payment account identification failed.
    ACCOUNT_PROVISION_SUCCESSA new payment account was successfully issued to the wallet user and added to the wallet.
    ACCOUNT_PROVISION_FAILProvisioning a new payment account for the wallet user failed.
    ORDER_HISTORY_RETRIEVE_SUCCESSThe list of previous remote order submissions was successfully retrieved.
    ORDER_HISTORY_RETRIEVE_FAILThe order history could not be retrieved.
    VERIFICATION_EMAIL_RESENT_SUCCESSThe registration verification email was successfully resent.
    VERIFICATION_EMAIL_RESEND_FAILResending the registration verification email failed.
    PASSCODE_POLICY_RETRIEVAL_SUCCESSThe passcode policy was successfully obtained.
    PASSCODE_POLICY_RETRIEVAL_FAILThe passcode policy retrieval failed.
    FAVORITE_STORES_RETRIEVAL_SUCCESSThe list of favorite stores was retrieved successfully.
    FAVORITE_STORES_RETRIEVAL_FAILThe list of favorite stores could not be retrieved.
    FAVORITE_STORE_RETRIEVAL_SUCCESSThe requested favorite store was retrieved.
    FAVORITE_STORE_RETRIEVAL_FAILThe requested favorite store could not be retrieved.
    FAVORITE_STORE_SET_SUCCESSThe specified store was saved as a favorite.
    FAVORITE_STORE_SET_FAILThe specified store could not be saved as a favorite.
    FAVORITE_STORE_REMOVE_SUCCESSThe specified store is no longer a favorite.
    FAVORITE_STORE_REMOVE_FAILThe specified store could not be updated.
    BEACONS_RETRIEVE_SUCCESSThe BLE beacons requested were retrieved.
    BEACONS_RETRIEVE_FAILThe BLE beacons could not be retrieved.
    CHECK_IN_SUCCESSThe device successfully paired with the BLE service of the acceptance location.
    CHECK_IN_FAILThe device was unable to pair with the BLE service of the acceptance location.
    RECEIPTS_SUMMARY_RETRIEVE_SUCCESSThe list of receipt summaries was retrieved successfully.
    RECEIPTS_SUMMARY_RETRIEVE_FAILThe list of receipt summaries could not be retrieved.
    RECEIPTS_DETAILS_RETRIEVE_SUCCESSThe requested receipt was retrieved.
    RECEIPTS_DETAILS_RETRIEVE_FAILThe requested receipt details could not be retrieved.
    BLE_DEVICE_DISCOVERY_SUCCESSThe BLE service has discovered a supported broadcasting device.
    BLE_DEVICE_DISCOVERY_FAILThe BLE service failed to discover a supported broadcasting device.
    BLE_SERVICE_DISCOVERY_SUCCESSThe BLE service has discovered a broadcasting service.
    BLE_SERVICE_DISCOVERY_FAILThe BLE service failed to discover a broadcasting service.
    BLE_TOKEN_SCAN_SUCCESSThe BLE service has successfully scanned a BLE-broadcast checkout token.
    BLE_TOKEN_SCAN_FAILThe BLE service failed to scan a BLE-broadcast checkout token.

    Logging Event Parameters

    The logging event parameters included with the event types defined in Table 5 above are provided as set of key/value pairs, with keys defined in the com.paydiant.android.core.enums.PaydiantLoggingEntryKey enum class. Table 6 lists the event parameters available in the WLW Logging Utility.

    Unavailable event parameters

    ParameterDescription
    NETWORK_NAMEMobile network name.
    MAC_ADDRESSWi-Fi mac address.
    WIFI_SSIDWi-Fi SSID.
    DEVICE_IDUnique device id.
    OS_VERSIONAndroid OS version.
    AVAILABLE_MEMORYDevice's available memory.
    RUNNING_PROCESSESDevice's running processes.
    MANUFACTURERDevice manufacturer.
    BRANDDevice brand.
    MODELDevice model.
    LAST_SUCCESSFUL_HEARTBEATDate and time of the last successful heartbeat occurred.
    LAST_FAILED_HEARTBEATDate and time of the last failed heartbeat.
    APP_VERSIONApplication version.
    EVENT_DATEDate and time that the event occurred.
    EVENT_RESULTEvent type.
    EVENT_USER_MESSAGEAny prompted messages to the user when an error event occurs.
    EVENT_ERROR_CODEEvent error code.
    EVENT_ERROR_DESCRIPTIONEvent error description.

    Available logging events

    The following event parameters are available for use in logging events.

    SCAN_EVENT_TOKEN

    Value returned when a token is successfully captured.

    TRANSACTION_EVENT_TX_TYPE

    Attribute value that specifies the type of transaction, such as purchase, refund, cash access, etc.

    TRANSACTION_EVENT_REF_ID

    Transaction reference id that uniquely identifies a specific transaction.

    TRANSACTION_EVENT_MERCHANT_NAME

    The value that identifies the mobile wallet acceptance merchant. for the transaction.

    TRANSACTION_EVENT_STORE_LOCATION_NAME

    The value that identifies the merchant location where the transaction occurred.

    TRANSACTION_EVENT_PAYMENT_TOTAL

    The final amount exchanged for the transaction.

    RECEIPTS_EVENT_COUNT

    The number of receipts returned from a successful retrieval.

    DEVICE_STATUS_CHECK_EVENT_ACTIVE

    The device’s active status.

    DEVICE_STATUS_CHECK_EVENT_REGISTERED

    The device’s registered status.

    CUSTOM_MESSAGE_KEY

    A key that can be used to send custom messages to the logs.

    LATITUDE

    A key that can be used to check the latitudinal position of the device at the time of the event.

    LONGITUDE

    A key that can be used to check the longitudinal position of the device at the time of the event.

    ROUNDTRIP_DURATION

    The amount of time, in milliseconds, that elapsed for the completion of a call, from the initial request to the completion of the response.

    LOCATION_LOGGING_ENABLED

    A key that specifies whether including the geo-location of the device in the log message is enabled in the SDK instance. The default value is NO.

    SDK_VERSION

    The version of the SDK on which the current app was a built.

    LOYALTY_REGISTRATION_STATUS

    The value of the setting indicating whether the wallet user is enrolled in the loyalty program.

    TX_FLOW_STEP

    The value of the flow rule that was executing at the time the event occurred.

    APP_VERSION_CODE

    Key indicating the versionCode attribute value set in the AndroidManifest.xml file.

    BLE_DEVICE_NAME

    Key indicating the name of a broadcasting BLE device discovered by the app.

    BLE_DEVICE_ADDRESS

    Key indicating the UUID of the discovered BLE device.

    BLE_SERVICE_ID

    Key indicating the name of a discovered BLE service.

    BLE_SERVICE_UUID

    Key indicating the UUID of the discovered BLE service.

    BLE_SERVICES

    A list of all BLE services (by name and UUID) discovered by the app.

    BLE_SCAN_START

    A timestamp that identifies when the BLE service began scanning, in the format MM/dd/yyy HH:mm:ss Z.

    BLE_SCAN_END

    A timestamp indicating when the BLE service stopped scanning, in the format MM/dd/yyy HH:mm:ss Z.

    SDK_PROFILE_START_DATE

    The timestamp indicating when the call was sent by the SDK, in the format MM-dd-yyy hh:mm:ss.

    SDK_PROFILE_DURATION

    The amount of time, in nano seconds, that it took for the call to complete.

    Logging Utility Methods

    The following methods are available for use by the developer to utilize the functionality of the WLW Logging Utility.

    Initialize WLW logging utility

    This method initializes the WLW Logging Utility and creates an instance for the purpose of collecting and sending log entries. This must be called before using any of the methods of the Logging Utility.

    ItemDescription
    Methodpublic static void init(ContextWrapper contextWrapper, int queueSize, boolean sendDataInBackground)

    contextWrapper - an instance of the Android ContextWrapper and is used collect information about the device.
    queueSize - the maximum number of entries that the utility class's internal queue can hold. When the limit is reached, the oldest entry is dropped from the queue.
    sendDataInBackground - a Boolean flag that enables (TRUE) or disables (FALSE) sending data while the app is in the background.
    reachabilityInterval- the number of seconds that should elapse between reachability checks to determine when the app in is the foreground or background and deallocate the log queue memory accordingly.
    reachabilityRetryAttempts - the number of times the app should attempt to determine reachability before considering the server unresponsive.
    reachabilityRetryAttemptInterval is the number of seconds that should elapse between retry attempts.

    Get instance

    Retrieves the instance of the WLW Logging Utility created by the init method. If this method is called before the init method, it throws the UnsupportedOperationException. Use init(ContextWrapper, int, boolean) to initialize the singleton instance.

    ItemDescription
    Methodpublic static PaydiantLoggingUtility getInstance()

    Activate custom logging

    For SDK instances where the default internal logging of the WLW Logging Utility is not desired, developers should invoke this method to disable the feature and avoid duplicate logging.

    ItemDescription
    Methodpublic void setCustomLoggingEnabled(Boolean);
    ItemDescription
    Methodpublic void setLoggingEnabled(boolean loggingEnabled)

    Add successful event log message

    Use these overloaded methods to record log messages for successful operations originating from within the SDK.

    ItemDescription
    Methodpublic synchronized void addSuccessLogMessage(PaydiantLoggingEventType eventType)

    Use the following method to log success events that require addition data to be passed, such as token values, transaction reference ids, etc.

    ItemDescription
    Methodpublic synchronized void addSuccessLogMessage(PaydiantLoggingEventType eventType, LinkedHashMap < PaydiantLoggingEntryKey, String > eventParameters)

    Add successful external event log message

    Use this method to record log messages for successful wallet-related events that occur outside this SDK, such as social media activity or store location searches. Use the eventParameters attribute to pass any additional information that is relevant to the event.

    ItemDescription
    Methodpublic synchronized void addSuccessLogMessage(String eventType, LinkedHashMap < String, String > eventParameters)

    Add failed event log message

    Use these overloaded methods to log failed events. Any user prompts and exceptions thrown by the SDK should be included.

    ItemDescription
    Methodpublic synchronized void addFailedLogMessage(PaydiantLoggingEventType eventType, String displayMessage, PaydiantException e)

    Use the following method to log success events that require additional data to be passed, such as token values, transaction reference ids, etc.

    ItemDescription
    Methodpublic synchronized void addFailedLogMessage(PaydiantLoggingEventType eventType, String displayMessage, PaydiantException e, LinkedHashMap < PaydiantLoggingEntryKey, String > eventParameters)

    Add failed external event log message

    Use this method to record log messages for failed wallet-related events that originate outside this SDK, such as social media activity or store location searches. Use the eventParameters attribute to pass any additional information that is relevant to the event or its cause for failure.

    ItemDescription
    Methodpublic synchronized void addFailedLogMessage(String eventType, String displayMessage, Exception e, LinkedHashMap < String, String > eventParameters)

    Add display message to failed event log

    This method appends the log message for each failed event in the log with the message that was displayed to user in conjunction with the failure event. For example, the display message for a PASSWORD_UPDATE_FAIL event might be "The password must contain at least 1 capital and one number. Please try again." Developers should incorporate the display messages configured in the app for each different error condition that produces a failure for which a message is displayed to the user in the app in order to facilitate efficient and effective technical support.

    ItemDescription
    Methodpublic void setLastFailedEventDisplayMessage(String displayMessage);

    Send log messages

    Submits the queue contents to the backend for logging. Sending log messages should be performed during the following key events:

    • User Logoff
    • Successful or failed sales, refunds and cash access operations
    • Successful or failed user registration
    • Device Unlink
    ItemDescription
    Methodpublic synchronized void sendLogMessages()

    Effective as of SDK 4.6, when the SDK is configured to use internal logging, developers are no longer required to send log messages for the noted key events above. However, if customer logging is fully enabled or partially enabled for any of the key events listed above, developers are still responsible for submitting log messages upon completion of any of these events that are not utilizing the SDK’s internal logging feature.