It’s as easy as implementing a listener and calling another activity:
The journey will be done as defined by IEOS Customer Journey configuration.
Implement or create an instance of CustomerJourneyEventListener implementation
Java
privateCustomerJourneyEventListener customerJourneyEventListener = newCustomerJourneyEventListener() {/*** Provides version information**/@OverridepublicvoidonServerInfo(@NotNullResponseVersionInfo info) {}/*** Called back if customer clicked back or exits Customer Journey.*/@OverridepublicvoidonJourneyCanceled(@NotNullCustomerJourneyError customerJourneyError) {}/*** Callback for failure from which we dit not succeed to restore our self.*/@OverridepublicvoidonJourneyFailed(@NotNullCustomerJourneyError customerJourneyError) {}/*** Callback if journey was successfully completed.*/@OverridepublicvoidonJourneyCompleted(@NotNullResponseJourney responseJourney) {}};
Kotlin
privateval customerJourneyEventListener = object : CustomerJourneyEventListener {/*** Callback if journey was successfully completed.*/override fun onJourneyCompleted(responseJourney: ResponseJourney) {}/*** Callback for failure from which we dit not succeed to restore our self.*/override fun onJourneyFailed(customerJourneyError: CustomerJourneyError) {}/*** Called back if customer clicked back or exits Customer Journey.*/override fun onJourneyCanceled(customerJourneyError: CustomerJourneyError) {}/*** Provides version information**/override fun onServerInfo(info: ResponseVersionInfo) {}}
Register your implementation using
Please note: Kotlin registers before and unregisters after response as register would create a new instance and not override old.
To register the listener:
//Start the service in onStart and attach the listener@OverrideprotectedvoidonStart() {super.onStart();MjcsEventService.registerService(this, mjcsEventService -> {service = mjcsEventService;service.setCustomerJourneyEventListener(customerJourneyEventListener);returnnull;});}//Detach listener in onStop and stop the service@OverrideprotectedvoidonStop() {service.setCustomerJourneyEventListener(null);service.unregisterService(this);super.onStop();}
kotlin
//Start the service in onStart and attach the listeneroverride fun onStart() {super.onStart()registerService(this) {service = itservice.customerJourneyEventListener = customerJourneyEventListener}}//Detach listener in onStop and stop the serviceoverride fun onStop() {service.customerJourneyEventListener = nullservice.unregisterService(this)super.onStop()}
Create an intent wit Customer journey configuration:
Kotlin
val config = CustomerJourneyConfig.Builder(baseUrl = baseUrl, // Add server base URL if POC server provided by GBG IDscan its most likely https://company.idscan.cloudcredentials = Credentials(username, password), // Add Scanning Area credentials or use parameter name token and add it.certificates = emptyList(), // Reffer to section: SSL pinning CustomerJourney).build()// Call to open Customer Journeyval customerJourney = Intent(this, CustomerJourneyActivity::class.java)customerJourney.putExtra(CustomerJourneyActivity.EXTRA_CONFIG, config)startActivity(customerJourney)
Please note: For security reasons ensure that credentials provided from a mobile device are scanning are and don’t have other permissions as this could compromise the security of your IEOS instance.
The Old way:
// Create intent to start scanner activityIntent customerJourney = newIntent(this, CustomerJourneyActivity.class);customerJourney.putExtra(CustomerJourneyActivity.EXTRA_BASE_LINK, baseUrl); // Add server base URL if POC server provided by GBG IDscan its most likely https://company.idscan.cloudcustomerJourney.putExtra(CustomerJourneyActivity.EXTRA_CREDENTIALS, // Add Scanning Area credentialsnewCredentials(username, password));startActivity(customerJourney);
Don’t forget to add a check for camera permissions.
Possible onJourneyFailed(CustomerJourneyError) codes.
| Code | Description |
|---|---|
| EnterpriseService.EXCEPTION_ERROR | Returns when Web service experienced an unrecoverable situation and returns a localized exception message. |
| 500 | Internal server error, more information on the server side. |
| 408 | Server time out |
| 401 | Unauthorized, possibly bad credentials. |
| 400 | Bad Request |
| … | Other error HTTP status codes possible https://en.wikipedia.org/wiki/List_of_HTTP_status_codes |
| CustomerJourneyError | Errors from customer journey itself |
| NONE | No error. |
| GENERAL | General error check message |
| NO_SERVER_RESPONSE | Journey Failed server didn’t respond. |
| UNKNOWN_REQUIRED_ACTION | Journey Failed because of unknown action |
| CAMERA | Journey Failed because of camera failure |
| WEB_INITIALIZING | Creating a webservice instance failed |
| WEB_INITIALIZING_BAD_URL | Creating Retrofit instance failed with IllegalArgumentException |
| EXECUTION | Execution error, most likely exceptions from which we are not recovering, will send exception localized message. |
| For more information check JavaDocs on possible call exceptions. |