Step 1 - Update the Gradle Build Properties to Integrate Cardinal Mobile SDK
In Android Studio, open the app directory (which can also be labeled Module: app) and then open the build.gradle file. Double-check to make sure that you edit the Gradle file that is located in the app directory. Add the following contents to the Gradle file.
Code Block |
---|
repositories { ... maven { url "https://cardinalcommerceprod.jfrog.io/artifactory/android" credentials { username '' // Artifactory username password '' // Artifactory API Key } } } dependencies { ... //Cardinal Mobile SDK implementation 'org.jfrog.cardinalcommerce.gradle:cardinalmobilesdk:2.2.6-1' } |
If your project uses Proguard, add the following lines into proguard-rules.pro file:
Code Block |
---|
-keep class com.cardinalcommerce.dependencies.internal.bouncycastle.** -keep class com.cardinalcommerce.dependencies.internal.nimbusds.** |
Info |
---|
If you do not already have a Username and API Key for the JFrog Platform, please reach out to your CardinalCommerce Solution Engineer or account manager. |
Step 2 - Configure Cardinal Mobile SDK
Upon successfully completing Integration in Step 1, get the instance of the cardinal object by Cardinal.getInstance(). SDK offers multiple configuration options for you (if not specified, everything is set to default). For more details see the Configurations table further down in this article. Use the code snippets below for completing the cardinal.configure().
Java
Code Block | ||
---|---|---|
| ||
private Cardinal cardinal = Cardinal.getInstance(); @Override protected void onCreate(Bundle savedInstanceState) { CardinalConfigurationParameters cardinalConfigurationParameters = new CardinalConfigurationParameters(); cardinalConfigurationParameters.setEnvironment(CardinalEnvironment.STAGING); cardinalConfigurationParameters.setRequestTimeout(8000); cardinalConfigurationParameters.setChallengeTimeout(5); JSONArray rType = new JSONArray(); rType.put(CardinalRenderType.OTP); rType.put(CardinalRenderType.SINGLE_SELECT); rType.put(CardinalRenderType.MULTI_SELECT); rType.put(CardinalRenderType.OOB); rType.put(CardinalRenderType.HTML); cardinalConfigurationParameters.setRenderType(rType); cardinalConfigurationParameters.setUiType(CardinalUiType.BOTH); cardinalConfigurationParameters.setLocationDataConsentGiven(true); UiCustomization yourUICustomizationObject = new UiCustomization(); cardinalConfigurationParameters.setUICustomization(yourUICustomizationObject); cardinal.configure(this,cardinalConfigurationParameters); } |
Kotlin
Code Block | ||
---|---|---|
| ||
private val cardinal: Cardinal = Cardinal.getInstance() override fun onCreate(savedInstanceState: Bundle?) { val cardinalConfigurationParameters = CardinalConfigurationParameters() cardinalConfigurationParameters.environment = CardinalEnvironment.STAGING cardinalConfigurationParameters.requestTimeout = 8000 cardinalConfigurationParameters.challengeTimeout = 5 val rTYPE = JSONArray() rTYPE.put(CardinalRenderType.OTP) rTYPE.put(CardinalRenderType.SINGLE_SELECT) rTYPE.put(CardinalRenderType.MULTI_SELECT) rTYPE.put(CardinalRenderType.OOB) rTYPE.put(CardinalRenderType.HTML) cardinalConfigurationParameters.renderType = rTYPE cardinalConfigurationParameters.uiType = CardinalUiType.BOTH cardinalConfigurationParameters.isLocationDataConsentGiven = true val yourUICustomizationObject = UiCustomization() cardinalConfigurationParameters.uiCustomization = yourUICustomizationObject cardinal.configure(this, cardinalConfigurationParameters) } |
Info |
---|
Security GuideAfter you configure cardinalSession, call method
See our Android Security Guidance for more details. |
Available Configurations
Anchor | ||||
---|---|---|---|---|
|
Method | Description | Default Values | Possible Values | ||||||
---|---|---|---|---|---|---|---|---|---|
setEnvironment(CardinalEnvironment environment) | Sets the environment the SDK has to connect to |
|
| ||||||
setUiType(CardinalUiType uiType) | Sets all UI types that the device supports for displaying specific challenge user interfaces within the SDK. This setting interacts with renderType in important ways. See setRenderType(org.json.JSONArray renderType) below for more information. |
|
| ||||||
setRenderType(org.json.JSONArray renderType)
| Sets render Lists all UI types that the device supports for displaying specific challenge user interfaces within the SDK. Note:
See setUiType(CardinalUiType uiType) above for more information on which uiType to use. |
|
| ||||||
setProxyAddress(java.lang.String proxyAddress) | Sets the proxy the SDK has to connect to |
| String Value | ||||||
setRequestTimeout(int requestTimeout) | Sets the maximum amount of time (milliseconds) for all exchanges | 8000 | >=0 Milliseconds (Integer) | ||||||
setChallengeTimeout(int challengeTimeout) | Sets the maximum amount of time (minutes) for challenge | 5 | >=5 minutes (Integer) | ||||||
setUICustomization(UiCustomization UI Customization) | Device Default Values | See article: Challenge User InterfaceCustomization Android | |||||||
setEnableDFSync(boolean enableDFSync) | On setting true, onSetupCompleted in step 4, will be called after device data collected is sent to the server | true | Boolean | ||||||
setThreeDSRequestorAppURL(String threeDSRequestorAppURL) | The setThreeDSRequestorAppURL method may set the 3DS Requestor App URL. If the app sets the URL, then the SDK shall pass the URL to the server. |
| String Value | ||||||
setEnableLogging(boolean enableEventLogging) | Enable cardinal logging | true | Boolean | ||||||
setLocationDataConsentGiven() | Validates if the app has received consent to collect location data. | false | Boolean | ||||||
|
|
| Boolean |