Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Step 1 - Download and Import the Cardinal Mobile SDK

Download the CardinalMobile.framework/CardinalMobile.xcframework file using the following cURL:

Download cURL

Code Block
languageapplescript
curl -L -u <USER_NAME>
        :<API_KEY> https://cardinalcommerceprod.jfrog.io/artifactory/ios/<VERSION>-<BUILD_NUMBER>/cardinalmobilesdk.zip
        -o <LOCAL_FILE_NAME.EXT>

#Example: 
curl -L -u UserName:ApiKey "https://cardinalcommerceprod.jfrog.io/artifactory/ios/2.2.5-1/cardinalmobilesdk.zip" -o cardinalmobile2.2.5-1.zip

Download .xcframework Using cURL

Code Block
languageapplescript
curl -L -u <USER_NAME>
        :<API_KEY> https://cardinalcommerceprod.jfrog.io/artifactory/ios/<VERSION>-<BUILD_NUMBER>/CardinalMobileiOSXC.zip
        -o <LOCAL_FILE_NAME.EXT>

#Example: 
curl -L -u UserName:ApiKey "https://cardinalcommerceprod.jfrog.io/artifactory/ios/2.2.5-1/CardinalMobileiOSXC.zip" -o cardinalmobile2.2.5-1.zip

In your XCode project, drag the CardinalMobile.framework or CardinalMobile.xcframework file into the Frameworks group in your Xcode Project (create the group if it doesn't already exist). In the Import dialog, tick the box to Copy items into destinations group folder (or Destination: Copy items if needed). The iOS SDK files are now available for linking to your project.

Image RemovedImage Added

Info

If you do not previously have a JFrog Platform Username and API Key, please reach out to your CardinalCommerce Solution Engineer.

Step 2 - Setting Up Your Build Environment

  1. Open Xcode and click on your project in the source list to the left of the main editor area.

  2. Select your application under the Targets section and go to the General tab.

  3. Expand the Embedded Binaries section then click the small “+” button at the bottom of the list.

  4. Add the CardinalMobile.framework or CardinalMobile.xcframework file from the list

Step 3 - Configure Cardinal Mobile SDK

Upon successfully completing Integration in Step 1 and Step 2, create a new instance of the cardinal object by [CardinalSession new]. SDK offers multiple configuration options for you (if not specified, everything is set to default). For more details: CardinalConfigurationOptions. Use the code snippet below for completing the configuration. 

Objective C

Code Block
languageobjective-c
#import <CardinalMobile/CardinalMobile.h>

CardinalSession *session;

//Setup can be called in viewDidLoad
- (void)setupCardinalSession {
	session = [CardinalSession new]; 
	CardinalSessionConfiguration *config = [CardinalSessionConfiguration new];
	config.deploymentEnvironment = CardinalSessionEnvironmentProduction;
	config.requestTimeout = CardinalSessionTimeoutStandard;
	config.challengeTimeout = 8;
	config.uiType = CardinalSessionUITypeBoth;

	UiCustomization *yourCustomUi = [[UiCustomization alloc] init];
	//Set various customizations here. See "iOS UI Customization" documentation for detail.
	config.uiCustomization = yourCustomUi;

	UiCustomization *yourDarkModeCustomUi = [[UiCustomization alloc] init];
	config.darkModeUiCustomization = yourDarkModeCustomUi;


	CardinalSessionRenderTypeArray *renderType = [[CardinalSessionRenderTypeArray alloc] initWithObjects:
    	                       	CardinalSessionRenderTypeOTP,
        	                   	CardinalSessionRenderTypeHTML,
								CardinalSessionRenderTypeOOB,
								CardinalSessionRenderTypeSingleSelect,
								CardinalSessionRenderTypeMultiSelect,
            	               nil];
	config.renderType = renderType;

	[session configure:config];
}

Swift

Code Block
languageswift
import CardinalMobile

var session : CardinalSession!

//Setup can be called in viewDidLoad
func setupCardinalSession{
	session = CardinalSession()
	var config = CardinalSessionConfiguration()
	config.deploymentEnvironment = .production
	config.requestTimeout = 8000
	config.challengeTimeout = 8
	config.uiType = .both

	let yourCustomUi = UiCustomization()
	//Set various customizations here. See "iOS UI Customization" documentation for detail.
	config.uiCustomization = yourCustomUi

	let yourDarkModeCustomUi = UiCustomization()
	config.uiCustomization = yourDarkModeCustomUi

	config.renderType = [CardinalSessionRenderTypeOTP, 
							CardinalSessionRenderTypeHTML,
							CardinalSessionRenderTypeOOB,
							CardinalSessionRenderTypeSingleSelect, 
							CardinalSessionRenderTypeMultiSelect]

	session.configure(config)
}

Info

Security Guide

After you configure cardinalSession, call method getWarnings to get the list of all the warnings for the particular device. Take further action based on the warnings found. The list of warnings can be accessed as follows:

NSArray<Warning *> *warnings = [session getWarnings];

See our iOS Security Guidance for detail.


Available Configurations  
Anchor
availableConfig
availableConfig

Method

Description

Default Values

Possible Values

deploymentEnvironment

The environment SDK connects to.

CardinalSessionEnvironmentProduction

  • CardinalSessionEnvironmentStaging

  • CardinalSessionEnvironmentProduction

collectLogs

Enables collecting SDK logs 

true

Boolean

requestTimeout

Sets the maximum amount of time (in milliseconds) for all exchanges

8000

>=0 Milliseconds (Integer)

challengeTimeout

Challenge Screen Timeout in Minutes.

5

>=5 minutes (Integer)

uiType

Interface types that the device supports for displaying specific challenge user interfaces within the SDK. This setting interacts with renderType in important ways. See renderType below for more information.

CardinalSessionUITypeBoth

Info

It is recommended that you use CardinalSessionUITypeBoth to ensure your SDK integration can accept and render both the Native and HTML render types an issuer may use. Deviating from this default value could result in impacts to overall SDK transaction performance.

  • CardinalSessionUITypeBoth

  • CardinalSessionUITypeNative

  • CardinalSessionUITypeHTML

renderType

List of all the RenderTypes that the device supports for displaying specific challenge user interfaces within the SDK.

Note:

  • When using CardinalSessionUiTypeBOTH or CardinalSessionUiTypeHTML, all renderType options must be set.

  • When using CardinalSessionUiTypeNative, all renderType options except CardinalSessionRenderTypeHTML must be set.

See uiType above for more information on which UiType to use.

  • CardinalSessionRenderTypeOTP

  • CardinalSessionRenderTypeHTML

  • CardinalSessionRenderTypeOOB

  • CardinalSessionRenderTypeSingleSelect

  • CardinalSessionRenderTypeMultiSelect

  • CardinalSessionRenderTypeOTP

  • CardinalSessionRenderTypeHTML

  • CardinalSessionRenderTypeOOB

  • CardinalSessionRenderTypeSingleSelect

  • CardinalSessionRenderTypeMultiSelect

proxyServerURL

Proxy server through which the Cardinal SDK Session operates.

nil

String Value 

enableQuickAuth (deprecated)

Enable Quick Authentication

false

Boolean

requestTimeout

Sets the maximum amount of time (in milliseconds) for all exchanges

8000

>=0 Milliseconds (Integer)

challengeTimeout

Challenge Screen Timeout in Minutes.

5

>=5 minutes (Integer)

uiCustomization

Set Custom UICustomization for SDK Controlled Challenge UI.

nil


enableDFSync

Enable DF Sync to get onSetupCompleted (Step 4) called after collected Device Data is sent to the server.

true

Boolean

threeDSRequestorAppURL

Merchant app declaring their URL within the CReq message so that the Authentication app can call the Merchant app after OOB authentication has occurred. Each transaction would require a unique Transaction ID by using the SDK Transaction ID.

nil

String Value 

collectLogs

Enables collecting SDK logs 

true

Boolean

enableQuickAuth (deprecated)

Enable Quick Authentication

false

Boolean

darkModeUiCustomization

Set Custom UICustomization for SDK Controlled Challenge UI.

nil

-