STEP 1 Setup your development environment

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 and configure Xcode
  2. Disable ForwardSecrecy
  3. Initialize SDK instance

1. Install & configure Xcode

Development with Paydiant's iOS SDK requires Xcode 7 or later.

Once you have installed your Xcode environment, configure the following settings for your Paydiant project:

  1. Import the scope app included with your SDK bundle as your project and configure it as follows.

  2. Set IPHONEOS_DEPLOYMENT_TARGET=9.0 for your project.

  3. Add the -fstack-protector-all custom compiler flag to the Apple LLVM compiler settings to guard against Stack Smashing attacks. This security measure is required by Paydiant.

  4. Import PaydiantSDK.h header file into a common, top-level location in your app (such as the PCH header) to make all SDK headers available universally in the app.

  5. Link the following libraries and frameworks to your project’s Frameworks list:

    • libiconv.2.dylib
    • libstdc++.dylib
    • libz.dylib
    • UIKit.framework
    • Foundation.framework
    • CoreGraphics.framework
    • AudioToolbox.framework
    • MessageUI.framework
    • MediaPlayer.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • AVFoundation.framework
    • CFNetwork.framework
    • SystemConfiguration.framework
    • MobileCoreServices.framework
    • Security.framework
    • CoreMedia.framework
    • CoreVideo.framework
    • CoreTelephony.framework
    • CoreLocation.framework
    • OpenAL.framework
  6. Link the following certification pinning files to your project:

    • gd_intermediate.cer
    • gdig2.cer
    • symantec-securesitepro_ecc_ev-intermediate.cer
    • symantec-securesitepro_ecc-intermediate.cer
    • symantec-securesitepro_ev-sha2-intermediate-sha1-root.cer
    • symantec-securesitepro_ev-sha2-intermediate-sha2-root.cer
    • symantec-securesitepro-sha2-intermediate-sha1-root.cer
    • symantec-securesitepro-sha2-intermediate-sha2-root.cer

2. Disable ForwardSecrecy

Paydiant's iOS SDK does not support forward secrecy. Disable it by adding the following Cocoa Key to your project's information propoerty (info plist) file:

<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>auto.qa.paydiant.com</key>
        <dict>
            <key>NSExceptionRequiresForwardSecrecy</key>
            <false />
        </dict>
    </dict>
</dict>

3. Initialize SDK instance

  1. Define the environment variables for your development environment:

    • ipAddress - The host name or IP address where the mobile gateway resides, for example, "sandbox.paydiant.com"
    • hostProtocol - The protocol to be used when calling the mobile gateway for this version it is "https")
    • hostPort - The port the server is listening on - set to "nil"
    • applicationSignature - A unique identifier of the app used to generate the HMAC during signing.
    • applicationVersion - The app's release version, following Paydiant's a.b.c.d.e SDK version convention. For example, 6.7.0.0.i. for iOS version 6.7.
    • apiKey - The unique identifier of the application instance.

    Note: Values are required for ipAddress, applicationSignature, applicationVersion, and apiKey. The SDK will throw an exception for calls from any app without valid values for these properties.

  2. Configure your SDK instance:

    • Configure login credential encryption to match corresponding Issuer onboarding setting, if encryption will be handled by the SDK. Typically, this 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.
     NSDictionary *serviceSecurityConfigs = @(kEncryptPassword:@"false",
                                              kEncryptMFASecurityAnswer:@"false",
                                              kEncryptPin, @"false",
                                              kCaseInsensitiveMFASecretAnswer @"false"
                                              );
    

    [[PDPaydiantSDKConfig sharedInstance] setSecurityConfigurations:serviceSecurityConfigs];

    • Set log handling parameters:

      • (void)setStoreLogsInMemory:(BOOL)storeOrNot;
      • (void)numberOfLogsInMemory:(NSInteger)numberOfLogs;
    • Set a incremental-release rotating App Certification using a CFUUID generated app signature, with separate, unique UUIDs for test and production environments.

    • (void)setApplicationCertification:(CFUUID);

    • Configure location services, if applicable for your app. Refer to the iOS SDK Guide for LBS configuration and enablement calls.

  3. Call initPaydiantSDK to initialize the instance with the configuration settings.

     PDPaydiantContext *context = [[PDPaydiantContext alloc] init];
     context.hostProtocol = @"https";
     context.ipAddress = @"sandbox.paydiant.com";
     context.hostPort = nil;
     context.applicationSignature = @"999x9999-9x9x-9xx9-x999-99x99xxx99";
     context.applicationVersion = @"2.355.4.5";
     context.apiKey = @"xxx-1234-99xx-xx";
     PDPaydiantSDK *paydiantSDK = [PDPaydiantSDK newInstance];
     [paydiantSDK initPaydiantSDK:context];
     

NEXT STEP 2 Provide wallet access

Feedback