SDK Integration

This section provides detailed information on how to integrate the Netcetera 3DS SDK into an iOS Application or Library.

Cocoapods Setup

Steps to include the SDK into the project:

  1. Install Cocoapods following the instructions on the Cocoapods website.
  2. In your Podfile add the 3DS SDK private spec repo as source, and add the ThreeDS SDK as dependency.
  1. To install the pods run pod install.

Swift Package Manager Setup

To add 3DS SDK as dependency to your Xcode project, select File > Add Packages and enter the repository URL: https://github.com/ios-3ds-sdk/SPM.git. Proceed by selecting which version of the SDK you want to integrate.

You can also navigate to your target’s General pane, and in the “Frameworks, Libraries, and Embedded Content” section, click the + button, select Add Other, and choose Add Package Dependency.

Manual Setup

  1. Extract the Netcetera iOS 3DS SDK zip archive that is part of the delivery. Inside there is a single XCFramework ThreeDS_SDK.xcframework

  2. In your project, add the XCFramework in the "Frameworks, Libraries, and Embedded Content" section in the General target's tab.

License Setup

A license file containing a license key is distributed along with the SDK. In order to be able to use the Netcetera iOS 3DS SDK, the license key must be added in the ConfigParameters which are passed in the Initialization of the ThreeDS2Service.

Configuration with ConfigParameters

To define the license without the use of a ConfigurationBuilder, use ConfigParameters.addParameters(...) with the following arguments:

ArgumentValue
groupnil
paramName"license-key"
paramValueThe content of the license file.

Example:

Dependencies

Several external dependencies are used by the Netcetera iOS 3DS SDK. These libraries are integrated inside the SDK. The full list of dependencies is:

NameDescriptionWebsiteLicenseVersion
ASN1DecoderUsed to parse keys and certificates in ASN1 structurehttps://github.com/filom/ASN1DecoderMIT license1.2
SwCryptLibrary with crypto functions used in the SDK for JWS validation and signing, used only in iOS 10https://github.com/soyersoyer/SwCryptMIT license5.1.3
GMEllipticCurveCryptoSecurity framework used for Elliptic Curve keyshttps://github.com/ricmoo/GMEllipticCurveCryptoBSD 2-Clause "Simplified" License1.1

App Transport Security - HTTP Loads

EMVCo 3DS Specification requires the communication between the 3DS SDK and the ACS to go through HTTPS, but there is no such requirement for what protocol to be used when downloading the Payment System and Issuer logo images that shall be shown in the challenge screens. The URLs of these images are provided as parameters by the ACS in the CRes and it is expected they will be HTTPS URLs. The SDK doesn't have influence over this and if HTTP URLs are provided, the images will not be shown on the challenge screens.

More information about this and how to ensure that these images will be downloaded and shown on the challenge screen even if they are served using unsecured connection, please check Preventing Insecure Network Connections