iOS SDK - Device Management Module

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.
PDDeviceCoordinator *tempDeviceCoordinator = [[PDDeviceCoordinator alloc] init];
	self.deviceCoordinator = tempDeviceCoordinator;
	[tempDeviceCoordinator release];

getDeviceIdentifier

Retrieves the unique identification of the iOS device.

Note: This method may be invoked from any SDK module.

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.

Note: Invoke at the time of the first application launch.

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.

Note: Invoke at the time of the first application launch.

Element Value
Method -(void) isDeviceRegistered;
Success void (^IsDeviceRegisteredCompletionBlock(BOOL isregistered, BOOL isActive);

isRegistered - Indicates whether the device is currently associated with a Paydiant 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.

Note: When a user attempts to link and existing wallet registration to a new device by logging into the app from the unknown device, Paydiant sends an email to the wallet profile address to confirm that the association is intended and authorized by the wallet owner. If the wallet owner does not complete the verification, subsequent login attempts return an unverified app instance error. In the event the wallet owner needs another verification email, invoke this method.

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.

Note: A device can only be linked to one registered wallet, but the same wallet can be linked to multiple devices (such as Sarah's iPhone and Sarah's iPad). Distinguishing devices clearly can be very useful.

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.
Feedback

Have feedback?

Let us know.