iOS SDK - Message Objects

WLW uses message objects to handle requests and responses between WLW SDK and the mobile gateway without requiring fundamental changes to the Domain layer, allowing the mobile gateway to facilitate SDK changes more nimbly. As with the domain directory, the message directory is organized by SDK module.

PDRequest

The superclass for all calls made from the mobile gateway to the mobile app SDK. Each call passes a specific request object that is a child of this superclass and inherits the PDMetaData properties in the following ways. Each call must use the request object specific to its relevant facade module of the SDK to make sure that the underlying metadata is parsed accurately. For example, a request to update a payment account passes the PDUpdatePaymentAccountRequest.

PDResponse

The superclass for all response objects returned by the SDK facade layer to the mobile gateway.

PDMetaData

Defines configuration variables that alter a property’s usage rules depending on the context in which it is used. For example, the zipCode property of the Address might require 9 digits when used as a billing address, but only 5 digits when used for the user profile address.

Attribute Description
key String
Unique identification of the metadata property that allows the value meta data to be recognized by the SDK. This value cannot be edited by the app developer.
value dataType
Actual value of the attribute, which gets populated in the request/response method, either from the value entered in the app or the WLW server.
name String
Plain language label for the attribute.
dataType Class
Specifies the format that the attribute will take. The value passed should derive from the NSObject class, such as NSString, NSNumber, etc. To specify a primitive data type, use a wrapper so that the SDK receives the value as a valid NSObject parameter. For example, a Boolean type must be wrapped so it is sent to the SDK as NSNumber.
required Boolean
Specifies whether the metadata property is required for the payment account type. This attribute is editable by the app developer based on the payment type, for example, credit, debit, or gift specifications. When set to TRUE, a null value will throw an error.
minLength Integer
Minimum field length for the property, which can be edited by the app developer as appropriate for the payment type and property, as well as whether the property is required. For example, the card number of an AMEX card is 24 digits, while the card number for a Visa card is 16. If the property is not required, the minimum value would likely be 0.
Note: This attribute is validated before the request is processed and validation will throw an error if the criteria is not met.
maxLength Integer
Maximum field length for the property, which can be edited by the app developer as appropriate for the payment type and property. For example, the zip code property might be 5, while the mobile phone might be 10.
Note: This attribute is validated before the request is processed and validation will throw an error if the criteria is not met.
defaultValue String
The default value of the property, which will be used in the event that no other value is entered.
additionalDataValidations Array
The set of rules against which the property value must be validated prior to submitting to the WLW service. For example, if the value must be an exact character length or a future date. Each validation rule is defined by an individual PDTenderTypeMetaDataAdditionalDataValidations dictionary object.
ignoreForProvisioning Boolean
Specifies if this metadata object should be disregarded when the operation is to generate a new card account for the wallet.
order Integer
Specifies the numerical sequence of the attribute so the UI controls can follow a logical progression.
pciEncryptionRequired Boolean
Specifies if the property must be encrypted in compliance with PCI-sensitive data policies.
storageRestricted Boolean
Specifies if the property value is prohibited from being cached or otherwise stored in the app’s private data directory.
updatesAllowed Boolean
Specifies if the user can change the value for this property during an update action. For example, when updating a payment account, the user can change the nickname property, but cannot change the cardNumber.
reverificationRequired Boolean
Specifies if the property value requires reverification upon any change to the payment account.

PDAccountMetaData

Supplemental attributes that extend PDMetaData specifications for data properties that are relevant only for payment account properties.

Property Description
maskingRequired Boolean
Specifies if the payment account number must be hidden from view. When set to TRUE, the card number is obscured up to the last 4 digits. For example, XXXXXXXXXXXX4215.
dataGroup String
The category of information to which the property applies. For example, CARD_INFORMATION or BILLING_INFORMATION.

PDTenderTypeMetaData

Supplemental attribute that extends PDMetaData specifications for data properties that apply only to tender type properties.

Property Description
dataGroup The category of information for the tender type such as CARD_INFORMATION or BILLING_INFORMATION.

PDTenderTypeMetaDataAdditionalDataValidations

Defines a specific validation rule for a tender type metadata property.|

Property Description
maxLength Integer
The maximum length required by a UI widget in order to properly display or edit the property value.
minLength Integer
The minimum length required by a UI widget in order to properly display or edit the property value.
regex String
Any regular expression that the developer can apply to a property value for validation. For example, a developer might add the expression ^[A-Za-z0-9_.]+$ to stipulate that the value contain a minimum combination of characters.
Feedback