STEP 1 Setup your development environment
Last updated: Aug 15th, 5:51am
Before you begin developing your branded mobile wallet app, you must obtain the SDK and configure a development environment supporting its use.
SETUP STEPS:
1. Install development tools
Download and install Java 8.
Download and install Android Studio as your Integrated Development Environment (IDE) from Android Studio.
Add the following third-party dependencies to your build.gradle file:
1'com.google.android.gms:play-services-wallet:9.2.0'2'com.android.support:appcompat-v7:23.3.0'3'com.android.support:design:23.3.0'4'com.braintreepayments.api:braintree:2.+'5'com.android.support:support-v4:23.3.0'6'org.apache.httpcomponents:httpclient:4.0.1'
2. Configure the SDK instance
1. Define the environment variables for your development environment
HOST_IP - The host name or IP address where the mobile gateway resides, for example, "sandbox.paydiant.com"
HOST_URL - The mobile gateway path relative to the host. The URL suffix should always be
/mobile
appended to the HOST_IP value. For example,sandbox.paydiant.com/mobile
.PROTOCOL - The protocol to be used when calling the mobile gateway (for this version it is "https")
appSignature - A unique identifier of the app used to generate the HMAC during signing.
apiKey - The unique identifier of the application instance.
1private static final String HOST_IP = "<hostname>";2private static final String HOST_URL = HOST_IP + "<URL Suffix>";3private static final String PROTOCOL = "<protocol>";4private ContextWrapper androidContextInstance;5private byte[] appSignature = new byte[]6{7 0x6d,8 0x79,9 0x2d,10 0x61,11 0x70,12 0x7013};14private byte[] apiKey = new byte[]15{16 1 a7c, 1 x6d, 0x4 p, 1 x31, 1 x5z, 1 x6917};18PaydiantApplicationConfig.getPaydiantApplicationConfig()19 .setupPaydiantApplicationConfig(HOST_URL, PROTOCOL, androidContextInstance,20 appSignature, apiKey);
Note: AppSignature
and apiKey
values must be in byte format, not string.
2. Overload the application context method to set optional configuration values
paydiantSDKConfigProps
Configure encryption and case-sensitivity settings for login password/passcode (PIN)/secret question responses (MFA) to match the corresponding Issuer onboarding settings if encryption will be handled by the SDK:
1com.paydiant.android.config.PaydiantApplicationConfig.PASSWORD_ENCRYPTION_KEY("paydiant.mobile.sdk.password.hash.enable") Default = FALSE2com.paydiant.android.config.PaydiantApplicationConfig.PASSCODE_ENCRYPTION_KEY("paydiant.mobile.sdk.passcode.hash.enable") Default = FALSE3com.paydiant.android.config.PaydiantApplicationConfig.MFA_ANSWER_ENCRYPTION_KEY("paydiant.mobile.sdk.mfa.hash.enable") Defautlt = FALSE4com.paydiant.android.config.PaydiantApplicationConfig.MFA_CASE_SENSITIVITY_ENCRYPTION_KEY("paydiant.mobile.sdk.mfa.case.sensitivity.enable") Default = FALSE
Note: Typically, encryption is handled by the server rather than the SDK, so the default value of FALSE is applicable in most cases and explicit configuration is not necessary.
1sdkConfigProperties.put(com.paydiant.android.config.PaydiantApplicationConfig.PASSWORD_ENCRYPTION_KEY, false2com.paydiant.android.config.PaydiantApplicationConfig.PASSCODE_ENCRYPTION_KEY, false3com.paydiant.android.config.PaydiantApplicationConfig.MFA_ANSWER_ENCRYPTION_KEY, false4com.paydiant.android.config.PaydiantApplicationConfig.MFA_CASE_SENSITIVITY_KEY, false);
customAppVersionName
Set an alternative application version to override Paydiant’s default a.b.c.d.e versioning format. This custom value will supersede the default setting in the AndroidManifest.
private String customAppVersionName = "5.10"
3. Enable system logging
Paydiant's default logging utility is automatically initialized by the SDK, but it does need to be explicitly added as a service to the AndroidManifest file in order for the SDK to invoke the initialization.
1android:name="com.paydiant.android.ui.service.logging.PaydiantLoggingService"
Refer to Paydiant's Android SDK Guide for instructions on implementing a custom logging utility, should your business objectives necessitate it.