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 CustomerJourneyEventReceiver implementation.
private CustomerJourneyEventReceiver implementation = new CustomerJourneyEventReceiver() {
@Override
public void onJourneyCompleted(Context context, ResponseJourney responseJourney) {
// Results from Customer Journey
}
@Override
public void onJourneyFailed(Context context, CustomerJourneyError errorCode) {
// Failed check error object for more information. At the end see possible errorCodes.
}
@Override
public void onJourneyCanceled(Context context, CustomerJourneyError error) {
// If journey was cancelled, onBack() click event.
}
};
Kotlin
// Callback interface of Customer journey
private val response: CustomerJourneyEventReceiver = object : CustomerJourneyEventReceiver() {
/* Called back if customer clicked back or exits Customer Journey. */
override fun onJourneyCanceled(context: Context, customerJourneyError: CustomerJourneyError) {
}
/* Callback if journey was successfully completed. */
override fun onJourneyCompleted(context: Context, responseJourney: ResponseJourney) {
}
/* Callback for failure from witch we dit not succeed to restore our self. */
override fun onJourneyFailed(context: Context, customerJourneyError: CustomerJourneyError) {
}
}
- Register your implementation using
Note: Kotlin register before and unregister after response, as register would create a new instance and not override the old.
// Register before call CustomerJourneyService.registerEventReceiver(context, implementation);
// Unregister after call CustomerJourneyService.unregisterEventReceiver(context, implementation);
- Create an intent wit Customer journey configuration:
val config = CustomerJourneyConfig.Builder(
baseUrl = baseUrl, // Add server base URL if POC server provided by GBG IDscan its most likely https://company.idscan.cloud
credentials = 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 Journey
val customerJourney = Intent(this, CustomerJourneyActivity::class.java)
customerJourney.putExtra(CustomerJourneyActivity.EXTRA_CONFIG, config)
startActivity(customerJourney)
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.
- Older way
// Create intent to start scanner activity
Intent customerJourney = new Intent(this, CustomerJourneyActivity.class);
customerJourney.putExtra(CustomerJourneyActivity.EXTRA_BASE_LINK, baseUrl);
customerJourney.putExtra(CustomerJourneyActivity.EXTRA_CREDENTIALS, new Credentials(username, password));
startActivity(customerJourney);
Note: Don’t forget to add a check for camera permissions.
Possible onJourneyFailed(CustomerJourneyError) codes:
Code | Description |
EnterpriseService.EXCEPTION_ERROR | Returns when Web service experienced unrecoverable situation and returns localised exception message. |
500 | Internal server error, more information on server side. |
408 | Server time out. |
401 | Unauthorised, 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 din’t respond. |
UNKNOWN_REQUIRED_ACTION | Journey Failed because of unknown action. |
CAMERA | Journey Failed because of camera failure. |
WEB_INITIALIZING | Creating webservice instance failed. |
WEB_INITIALIZING_BAD_URL | Creating Retrofit instance failed with IllegalArgumentException. |
EXECUTION | Execution error, most likely exceptions from witch we are not recovering, will send exception localised message. |
For more information check JavaDocs on possible call exceptions.