The Trustly Android SDK is the quickest, most secure and failure-proof way to embed Trustly Checkout into your Android app. The SDK is a lightweight drop-in framework that enables the best Trustly user experience from within your app (multi-factor authentication, app-to-app redirection, error handling, etc).
The SDK provides a self-contained WebView
bundled with all the necessary handlers that enable the Trustly Checkout within your application.
If you are unable to integrate our SDK we recommend using our fallback method instead.
Our SDK for Android is distributed via GitHub in a public repository. Following sections will cover prerequisites as well as a guide of how to seamlessly integrate the SDK.
Trustly Android SDK: https://github.com/trustly/TrustlyAndroidSdk
The ReturnToAppURL
is required to seamlessly transition the user to your app after bank authentication redirects. The redirect URI for your app must be set up as a custom url scheme in your application (such as example://...
)
It is important that you only set the ReturnToAppURL
attribute for orders originating from your app. Including the ReturnToAppURL
for orders from other channels will break the user experience.
{
...
"params": {
...
"Data": {
...
"Attributes": {
...
"ReturnToAppURL": "myapp://"
...
Integrate the Trustly Android SDK through Maven Central. Add the following to your Project level build.gradle
file:
repositories {
...
mavenCentral()
...
}
Add Trustly SDK as dependency in your Module level the build.gradle
file like so:
dependencies {
...
//replace x.x.x with the current version
implementation 'com.trustly:trustly-android-library:x.x.x'
...
}
The later version of the SDK does not support the older version of the Trustly Checkout. If you do use the older Checkout, please use version 2.0.0 of the SDK. If you're not sure what version of the Trustly Checkout you are using, please contact our integration support for help.
Create WebView
In your app/src/main/res/layout/acitivity_main.xml
, add following code:
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Modify MainActivity
Import necessary dependancies and create a TrustlyWebView
instance:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import com.trustlyAndroidLibrary.TrustlyWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView main = findViewById(R.id.webview);
final TrustlyWebView trustlyView = new TrustlyWebView(this,
"<TRUSTLY-URL>");
main.addView(trustlyView);
}
Add permission for internet
Go to app/src/main/AndroidManifext.xml
and add following permissions:
<uses-permission android:name="android.permission.INTERNET"/>
If you want more control of your Checkout flow you can choose to provide custom handlers.
Provide successHandler
, abortHandler
and errorHandler
lambdas.
In case no custom functionality is provided, the WebView will load the SuccessURL
in case of a success event, or the FailURL
in case of an error or an abort event.
trustlyView = new TrustlyWebView(this, trustlyCheckoutUrl);
trustlyView.successHandler = () -> {
// your custom implementation here.
};
trustlyView.errorHandler = () -> {
// your custom implementation here.
};
trustlyView.abortHandler = () -> {
// your custom implementation here.
};
It can happen that during the order flow, the user needs to be redirected outside of your application, to a third party application or website (in external stand alone browser). This could be part of the authentication and authorisation process.
To enable automatic redirects back to your native application, you can pass a link as an attribute to the order initiation request. You can pass your link (web, app link or deep link) value by including it in the ReturnToAppURL
attribute when making an API call to Trustly.
It's important that the Activity hosting the checkout doesn't reload when the intent is received. Otherwise the Trustly checkout session will be lost.
When defining you intent filters make sure to set android:launchMode="singleTop"
parameter in your manifest file.
<activity
android:name=".YOUR_TRUSTLY_WEB_VIEW_ACTIVITY"
android:exported="true"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="@string/scheme_host_sdk"
android:scheme="@string/scheme" />
</intent-filter>
Opting in to events is solely for SDK v3.0.1 or later and is only compatible with the newer version of the Trustly Checkout.