1.5 Configurations for the IOS application

This topic provides information on Configurations for the IOS application.

Application level configurations are present in ‘app.plist’ (ZigBank/Resources) of the workspace

Note:

These are configurations for different features. The description of each is in given below format

Type - Data Type of value

Purpose - Its usage

Value – The possible values

Configurable – Yes if bank can be allowed to change. No if the value is not allowed to be changed.

  1. For SERVER_URLs:

    Open Xcode by clicking ZigBank.xcodeproj at zigbank/platforms/ios/

    This is mandatory configuration.

    Add URLs to app.plist (ZigBank/Resources)

    OBDXTOKEN (Token based mechanism)

    For more information on fields, refer to the field description table.

    Table 1-1 Table: OBDXTOKEN

    SERVER_TYPE OBDXTOKEN
    KEY_SERVER_URL Description of link3.png follows
    Description of the illustration link3.png
    WEB_URL Description of link3.png follows
    Description of the illustration link3.png
  2. For SIRI
    1. This configuration is Optional.
    2. By default, SIRI capability is set to YES. Bank can disable it.

      For more information on fields, refer to the field description table.

      Table 1-2 Table: For SIRI

      SERVER_TYPE Description
      CurrencyCode

      Type: String

      Purpose: Currency code for Siri Payments

      Value: Currency Value. Ex: INR

      Configurable: Yes

      Configurable: Yes

      SiriRequiredFlag

      Type: Boolean

      Purpose: To enable/disable Siri capability

      Value: YES/NO

      Configurable: Yes

      SIRIDebugEnabled

      Type: Boolean

      Optional. Can be set only if debugging is required in development mode. Default the value is NO.

      Purpose: If we need to debug SIRI flow, this can be set to true. Refer section on how to configure device to debug SIRI.

      Value: YES/NO

      Configurable: Yes

    3. Siri-Payload.plist
      1. This is present in (ZigBank/Resources folder inside IOS workspace.
      2. It ) is provided to specify entries in the Siri payload based on transaction types (internal, domestic).
      3. This is required if bank’s SIRI payment payload differs from what is currently present in workspace and if bank needs to add certain mandatory fields for the payload.
      4. By default, SIRI will work with the given payload so no need to change anything in it.
  3. To Enable SSL:
    1. Refer section: Enabling SSL pinning in the application on how to configure the workspace to enable SSL pinning in the application.
    2. By default, SSL pinning is NO in the workspace.

      Recommended to set to YES for production URLs with a valid authorized SSL certificate on server.

      For more information on fields, refer to the field description table.

      Table 1-3 Table: Enable SSL

      SERVER_TYPE Description
      SSLPinningEnabled

      Type: Boolean

      Purpose: To enable SSL Pinning. SSL checks are performed on application launch.

      Value: YES, for enabling. NO for disabling.

      Configurable: Yes

      CertificateType

      Type: String

      Purpose: File extension of SSL Pinned certificates

      Value: cer

      Note: the certificate file added in the workspace should also have .cer extension

      Configurable: Yes

      PinnedUrl

      Type: Array

      Purpose: Pinning URL to be entered here. This is the https URL of the server against which the certificate will be verified. Can add multiple if required.

      Value: https server URL

      Configurable: Yes

      PinnedCertificateName

      Type: Array

      Purpose: For verification of SSL, this certificate will be pinned in the application and verified against the server URL.

      Value: Houses the certificate name (without extension) of the pinning certificate. Old certificate (about to expire) and new one can co-exist.

      Configurable: Yes

      SSLPinningEnabledNoNetworkCall

      Provides the option of whether to load the login page if SSL Pinning fails. SSLPinningEnabled also must be set to YES for it to work.

      If set to YES and SSLPinningEnabled is set to YES then if SSL Pinning fails, then login page does not load.

      If set to NO and SSLPinningEnabled is set to YES then if SSL Pinning fails, then login page loads.

      Configurable: Yes

      EnableSSLPinningForEveryRequest

      Type: Boolean

      Purpose: To enable SSL Pinning for every request fired from application pages in the entire application.

      Value: YES, for enabling. NO for disabling.

      Configurable: Yes

  4. To Enable Force Update:

    This is an optional configuration.

    Refer section: Enabling Force update on more details on how to configure the workspace for this.

    For more information on fields, refer to the field description table.

    Table 1-4 Table: Enable SSL

    SERVER_TYPE Description
    ForceUpdate

    Type: Boolean

    Purpose: To enable force update feature in the application.

    Value: If set to YES, then the application will check for updates from the Appstore and display a non-dismissing popup. User needs to forcefully update the application. Default value: NO

    Configurable: Yes

    AppStoreID

    Type: String

    Purpose: The force update will be checked against this application ID

    Value: Enter the ID of the application from AppStore.

    Configurable: Yes

    AppStoreURL

    Type: String

    Purpose: URL to AppStore redirection on click of update button.

    Value: It is set to

    https://itunes.apple.com/in/app/id@@AppStoreID?mt=8

    Just replace @@AppStoreID to what is set above for ‘AppStoreID’

    Configurable: Just update as mentioned above. Do not change the URL.

    itunesUrlForVersionCheck

    Type: String

    Purpose: URL to check application version in AppStore for force update

    Value: It is set to

    https://itunes.apple.com/in/app/id@@AppStoreID?mt=8

    Just replace @@AppStoreID to what is set above for ‘AppStoreID’

    Configurable: Just update as mentioned above. Do not change the URL.

  5. WATCH Application parameters:

    Applicable only if Watch target is added in the workspace.

    These are optional configurations.

    For more information on fields, refer to the field description table.

    Table 1-5 Table: WATCH Application parameters

    SERVER_TYPE Description
    WatchOATCorp

    Type: Boolean

    Purpose: To enable/disable Own Account Transfer through Apple Watch OBDX application for corporate users only. If set to YES, then OWN Account Transfer option will be available in the watch application.

    Value: YES, to display the option. NO to hide that option

    Configurable: Yes

    WatchSnapshot

    Type: Boolean

    Purpose: To enable/disable snapshot capability in Apple Watch OBDX application. If set to YES, then Snapshot option will be available in the watch application.

    Value: YES, to display the option. NO to hide that option.

    Configurable: Yes

    WatchLocateUs

    Type: Boolean

    Purpose: To enable/disable ATM Location option in Apple Watch OBDX application. If set to YES, then ATM Location option will be available in the watch application.

    Value: YES, to display the option. NO to hide that option

    Configurable: Yes

    WATCHMAXATTEMPTS

    Type: Number

    Purpose: The number of time PIN login is allowed in the watch application

    Value: Defualt is 3. Change the value to which Bank wants to restrict the PIN invalid attempts. After attempts exhaust, user will be asked to register the application PIN again.

    Configurable: Yes

  6. For Displaying Maintenance Page:
    1. This is optional configuration. Bank needs to do this if they want to display maintenance page in case of any server error.
    2. By default, a maintenance page html is provided in workspace inside Zigbank->Staging->www. If bank needs to reconfigure the content, they can edit this page html.
    3. Also, by default, SHOW_MAINTENANCE_PAGE flag is set to YES and error code is set to 503.

      For more information on fields, refer to the field description table.

      Table 1-6 Table: Displaying Maintenance Page

      SERVER_TYPE Description
      SHOW_MAINTENANCE_PAGE

      Type: Boolean

      Purpose: To display a maintenance page if server is down.

      Value: true to display. If bank doesn’t need any page to be displayed, it can be set to false. Default is true

      Configurable: Yes

      MAINTENANCE_PAGE_STATUS_CODE

      Type: Array

      Purpose: To set the status code for which maintenance page is to be displayed. This will be used only if “SHOW_MAINTENANCE_PAGE” value is true.

      Value: status code to be checked (E.g. 503, 504 etc) Default value is 503. Bank can set only one value or multiple status codes if required.

      Configurable: Yes

      Note:

      Note: If UI is built and copied into workspace as local UI (by using section 2.5), and bank wants to use maintenance page, then additional changes are required as below:
    4. No need to do these changes if the UI remotely hosted.
      1. In app.plist, add and additional property “MAINTENANCE_PAGE_URL” as String and set the maintenance page URL which needs to be displayed when server is down.
      2. Open index.html and add below code in script tag as below:
        <script type="text/javascript" charset="utf-8">                
        function init()
              {            
        var maintenancePageUrl,maintenancePageStatusCode,showMaintenancePage;           
         var server_url = "http://ofss-mum-715.snbomprshared1.gbucdsint02bom.oraclevcn.com:17777"            var home_html =
                "?ojr=home";           
         var url = server_url + "/" + home_html;           
                plugins.appPreferences.fetch(MAINTENANCE_PAGE_STATUS_CODE_SUCCESS, error,'MAINTENANCE_PAGE_STATUS_CODE');           
                plugins.appPreferences.fetch(SHOW_MAINTENANCE_PAGE_SUCCESS, error, 'SHOW_MAINTENANCE_PAGE');                        function
                MAINTENANCE_PAGE_URL_SUCCESS(value) 
        {                
        maintenancePageUrl = value;               
                showMaintenance();            
        }                        
        function MAINTENANCE_PAGE_STATUS_CODE_SUCCESS(value) 
        {               
                maintenancePageStatusCode = value;            
        }                        function
                SHOW_MAINTENANCE_PAGE_SUCCESS(value) 
        {                
        var xmlhttp = new XMLHttpRequest();               
                xmlhttp.onreadystatechange = function() 
        {                    
        if (xmlhttp.readyState === 4) 
        {                        
        if (maintenancePageStatusCode.includes(xmlhttp.status) && value) 
        {                           
                plugins.appPreferences.fetch(MAINTENANCE_PAGE_URL_SUCCESS, error,'MAINTENANCE_PAGE_URL');                                                   
                }                   
                }               
              }               
                xmlhttp.open("GET", url, true);               
                xmlhttp.send();            
        }                        
        function error(err)
                {               
                console.log(err);            
        }                        
        showMaintenance = function() 
        {               
         var xmlhttpMaintenance = new XMLHttpRequest();               
                             
                xmlhttpMaintenance.onreadystatechange = function ()
         {                   
                                    if (xmlhttpMaintenance.readyState === 4) 
        {                       
                document.getElementById("obdx-dashboard").style.display ="none";                        
        document.getElementById("showMaintenancePageid").innerHTML = this.responseText;                   
                }               
              };               
                xmlhttpMaintenance.open("GET", maintenancePageUrl, true);               
                xmlhttpMaintenance.setRequestHeader("Cache-Control", "no-cache, no-store, max-age=0");               
                xmlhttpMaintenance.send();           
         }                    
        }    
        </script>
      3. In the body tag add onload="init();" attribute.
      4. Update the server_url in the above script to bank’s server url
  7. COMMON CONFIGURATIONS

    For more information on fields, refer to the field description table.

    Table 1-7 Table: COMMON CONFIGURATIONS

    SERVER_TYPE Description
    XcodeBuildVersion

    Build version with which the workspace is built with.

    Configurable: No

    PatchSetVersion Version of the. OBDX application to identify the version of the workspace inside the patch installer.
    SUITENAME

    Group identifier for sharing keystore information.

    This Should match the app group added in the profile and in Targets->Signing Capabilities.

    App Groups are linked with the provisioning profile and its value can be verified from the Zigbank target->Signing Capabilities.

    This value is important for the secured storage of the information.

    Configurable: Yes

    BankName

    Name of bank to be shown on touch id / face id popup

    Configurable: Yes

    DomainDeployment

    To be always set YES for token-based development.

    Configurable: No

  8. For CHATBOT
    • This is optional configuration. Bank needs to do this if Oracle Digital Assistant (ODA) is supported in their workspace.
    • Adding chatbot support to mobile application refer section: ODA Chatbot Inclusion.
    • Refer section: ODA Chatbot Inclusion for more details.
    • Below details can be obtained from the Oracle Digital Assistant portal.

      For more information on fields, refer to the field description table.

      Table 1-8 Table: COMMON CONFIGURATIONS

      SERVER_TYPE Description
      CHATBOT_ID The tenant ID
      CHATBOT_URL The web socket URL for the Chat application in ODA portal
  9. For location tracking metrics
    1. This is optional. Bank needs to do if they need location tracking metrics for monitoring location-based data.

    For more information on fields, refer to the field description table.

    Table 1-9 Table: Location tracking metrics

    SERVER_TYPE Description
    ALLOW_LOCATION_SHARE By default, the value is false. If set to true, user will get location permission prompt to allow location tracking. It can be enabled if user’s location needs to be tracked.
  10. For displaying “Rate Us” to redirect to Appstore page
    1. This is optional. User can have an option (“Rate Us”) in settings to display App Store rating for the application. This option can be enabled/disabled from UI. Also, on click of the option, to open AppStore page for the application set below value.

      For more information on fields, refer to the field description table.

      Table 1-10 Table: Displaying “Rate Us” to redirect to Appstore page

      SERVER_TYPE Description
      AppStoreURL Replace @@AppStoreID with that of the application.