iOS SDK - Message Objects
Last updated: Feb 27th, 8:43am
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.
|