iOS SDK - Device Management Module

DOCS

Last updated: Sept 19th, 9:09pm

Use the endpoints of this module to uniquely identify the iOS device on which the mobile wallet app is installed so the device can be distinctly associated with a registered mobile wallet profile.

Initialize Device Management Facade

Prior to invoking any device management module endpoints:

  1. Create a new request object for the relevant coordinator.
  2. Implement the delegate for the coordinator to handle responses.
    1PDDeviceCoordinator *tempDeviceCoordinator = [[PDDeviceCoordinator alloc] init];
    2 self.deviceCoordinator = tempDeviceCoordinator;
    3 [tempDeviceCoordinator release];

    getDeviceIdentifier

    Retrieves the unique identification of the iOS device.

    Element Value
    Method Signature -(NSString *) getDeviceIdentifier;
    Returns The string value of the manufacturer ID for the device.

    isDeviceSupported

    Checks whether the device is capable of storing the device UUID.

    Element Value
    Method Signature -(void) isDeviceSupported;
    Success void (^IsDeviceSupportedCompletionBlock);

    The keychain is able to store the UUID; proceed with the registration process.
    Failure void (^IsDeviceSupportedFailureBlock)(PDPaydiantError *deviceManagementError);

    If the failure block returns error code 1100, halt further access and inform the user that the device is not supported due to a security-blocked or corrupt keychain.
    Error Description
    400 One or more values in the request is not valid.
    500 An unknown error occurred internally in the server.
    1100 Unable to store the UUID in the device keychain.

    isDeviceRegistered

    Checks whether the device is already associated with an existing wallet. A device can only be associated with one mobile wallet registration. If an association already exists, the user can either:

    • Unlink the device, then re-link to a different wallet profile.
    • Log into the associated wallet, requesting help for forgotten credentials if necessary.
    Element Value
    Method -(void) isDeviceRegistered;
    Success void (^IsDeviceRegisteredCompletionBlock(BOOL isregistered, BOOL isActive);

    isRegistered - Indicates whether the device is currently associated with a WLW mobile wallet. Valid values are:
    TRUE - Device is associated with a wallet.
    FALSE - Device is not associated with a wallet. Handle accordingly, such as by prompting the user to log into an existing account to associate the device or create a new wallet registration.

    isActive - Indicates the status of a device relevant to its existing wallet association. Valid values are:
    TRUE - The device is currently active and can process mobile transactions using the associated wallet.
    FALSE - The device has been suspended and must be reactivated in order to access the wallet with which it is associated.
    Failure void (^IsDeviceSupportedFailureBlock)(PDPaydiantError *deviceManagementError);
    Relevant Error Description
    400 One or more values in the request is not valid.
    426 The app or SDK version is out of date and an update is required.
    500 An unknown error occurred internally in the server.

    resendApplicationInstanceVerificationWithEmail

    Generates another email notification with a link to verify the association between a new device and an existing wallet.

    Element Value
    Method -(void) resendApplicationInstanceVerificationWithEmail:(PDResendApplicationInstanceVerificationWithEmailRequest *)request;

    request - An instance of the object that passes the email address of the registered wallet owner so the verification link can be re-emailed.
    Success void (^ResendApplicationInstanceVerificationWithEmailCompletionBlock();
    Failure void (^ResendApplicationInstanceVerificationWithEmailFailureBlock) (PDPaydiantError *deviceManagementError);

    Configure User Error messages for this call with the key kUserErrorResendApplicationInstanceVerificationWithEmailDomain.

    Error Description
    500 An unknown error occurred internally in the server.

    addAdditionalDeviceInformation

    Defines custom metadata properties related to the device to capture and store with the device profile.

    Element Value
    Method -(void) addAdditionalDeviceInformation:(PDAddAdditionalDeviceInformationRequest *)request;

    request - An instance of the object specifying the set of custom properties to be added to the device profile.
    Success void (^AddAdditionalDeviceInformationCompletionBlock();
    Failure void (^AddAdditionalDeviceInformationFailureBlock) (PDPaydiantError *deviceManagementError);
    Error Description
    400 One or more values in the request is not valid.
    403 The user must be logged in to make this call.
    500 An unknown error occurred internally in the server.

    retrieveAdditionalDeviceInformation

    Gets the current values for any custom metadata property values related to the device.

    Element Value
    Method -(void) retrieveAdditionalDeviceInformation;
    Success void (^RetrieveAdditionalDeviceInformationCompletionBlock(PDRetrieveAdditionalDeviceInformationResponse *response);

    response - Contains the custom properties set for the device profile and their current values.
    Failure void (^RetrieveAdditionalDeviceInformationFailureBlock)(PDPaydiantError *deviceManagementError);
    Relevant Error Description
    403 The user must be logged in to make this call.
    500 An unknown error occurred internally in the server.

    updateAdditionalDeviceInformation

    Resets the values of custom metadata properties stored on the device profile.

    Element Value
    Method -(void) updateAdditionalDeviceInformation:(PDUpdateAdditionalDeviceInformationRequest *)request;

    request - An instance of the object specifying the set of custom properties to be changed in the device profile.
    Success void (^UpdateAdditionalDeviceInformationCompletionBlock();
    Failure void (^UpdateAdditionalDeviceInformationFailureBlock)(PDPaydiantError *deviceManagementError);
    Error Description
    400 One or more values in the request is not valid.
    403 The user must be logged in to make this call.
    500 An unknown error occurred internally in the server.

    deleteAdditionalDeviceInformation

    Removes custom metadata properties from the device profile.

    Element Value
    Method -(void) deleteAdditionalDeviceInformation:(PDDeleteAdditionalDeviceInformationRequest *)request;

    request - An instance of the object containing a list of keys identifying the properties to be removed from the device profile.
    Success void (^DeleteAdditionalDeviceInformationCompletionBlock();
    Failure void (^DeleteAdditionalDeviceInformationFailureBlock)(PDPaydiantError *deviceManagementError);
    Error Description
    400 One or more values in the request is not valid.
    403 The user must be logged in to make this call.
    500 An unknown error occurred internally in the server.

    removeDevice

    Terminates the association between the device and a registered mobile wallet.

    Element Value
    Method -(void) removeDevice;
    Success void (^DeviceRemovalCompletionBlock();
    Failure void (^DeviceRemovalFailureBlock)(PDPaydiantError *deviceManagementError);
    Error Description
    400 One or more values in the request is not valid.
    403 The user must be logged in to make this call.
    500 An unknown error occurred internally in the server.

    updateDeviceDescription

    Adds the user's device description to the device profile.

    Element Value
    Method -(void) updateDeviceDescription:(NS String *)deviceDescription;

    deviceDescription - The user-specified description obtained from the device keychain.
    Success void (^UpadteDeviceDescriptionCompletionBlock();
    Failure void (^UpdateDeviceDescriptionFailureBlock)(PDPaydiantError *deviceManagementError);
    Error Description
    400 One or more values in the request is not valid.
    403 The user must be logged in to make this call.
    500 An unknown error occurred internally in the server.