Bezahlen mit der paydirekt-App

Kein Benutzername, kein Passwort – einfach mit der App bestätigen.

Ihre Kunden nutzen das Smartphone, um online einzukaufen. Häufig kommt es beim mobilen Check-out allerdings zu Kaufabbrüchen, wenn Benutzername und Passwort eingegeben werden müssen. Ab sofort können die Zahlungen einfach per Fingerabdruck, Gesichtserkennung oder PIN bestätigt werden.

psps

Was die neue Funktion kann und wie diese verwendet wird, können Sie direkt über den Video-Link anschauen. Sie erfahren dadurch noch mehr und können sich die App herunterladen und selber ausprobieren.
https://www.youtube.com/watch?v=l6ptcJOmM-E

Damit es bei Ihren Kunden funktioniert, ...

... ist bei der Verwendung von Android ein letzter Schritt notwendig. Wir stellen dadurch die reibunglose Kommunikation zwischen ihrer Händler-App und der paydirekt-App sicher. Durch ihre Einbindung unseres Checkouts über einen WebView kommt es zu einem Fehler. Der Klick auf den „Mit paydirekt-App zahlen“-Button löst im besten Fall einen „Intent“ des Android-Systems aus, auf den wir im Anschluss mit der paydirekt-App reagieren können. Dies geschieht in der Android-Version ihrer App leider nicht und infolge dessen kann unsere App nicht gefunden werden. Der Kunde kann den Kauf in ihrer App trotz installierter paydirekt-App nicht mit dieser abschließen. Das ist weder für Sie, ihre Kunden oder uns zufriedenstellend und deshalb gibt es für Sie und ihr Team im Folgenden die Lösung.

Kleines Problem, schnell gelöst

Mit Hilfe der folgenden Zeilen läuft die neue Funktion auch auf Android Smartphones ohne Probleme. Durch den Code stellen Sie „von Hand“ sicher, dass bei der Navigation auch im WebView ein “Intent“ des Android-Systems ausgelöst wird.

Code Example: Kotlin

override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
	if (isPaydirektAppLinkUrl(request?.url)) {
		val paydirektAppLinkIntent = Intent(Intent.ACTION_VIEW).apply {
			data = request?.url
		}
		if (isPaydirektAppAvailable(appLinkIntent, view?.context)) {
			view?.context?.startActivity(paydirektAppLinkIntent)
			return true
		}
	}
	return super.shouldOverrideUrlLoading(view, request)
}

private fun isPaydirektAppLinkUrl(uri: Uri?) = uri?.host?.startsWith("app.paydirekt.de") == true

private fun isPaydirektAppAvailable(intent: Intent, context: Context?): Boolean {
	val intentInfo = context?.packageManager?.queryIntentActivities(intent, 0)
	return intentInfo?.filter { info -> info.activityInfo.packageName.contains("com.gimb.paydirekt.app") } != null
}

Code Example: Java

public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
	if (isPaydirektAppLinkUrl(request.getUrl())) {
		Intent paydirektAppLinkIntent = new Intent(Intent.ACTION_VIEW);
		paydirektAppLinkIntent.setData(request.getUrl());
		if (isPaydirektAppAvailable(appLinkIntent, view.getContext())) {
			view.getContext().startActivity(paydirektAppLinkIntent);
			return true;
		}
	}
	return super.shouldOverrideUrlLoading(view, request);
}
 
private boolean isPaydirektAppLinkUrl(Uri uri) {
	if (uri != null && uri.getHost() != null) {
		return uri.getHost().startsWith("app.paydirekt.de");
	}
	return false;
}

private boolean isPaydirektAppAvailable(Intent intent, Context context) {
	List intentInfo = context.getPackageManager().queryIntentActivities(intent, 0);
	for (ResolveInfo info : intentInfo) {
		if (info.activityInfo.packageName.contains("com.gimb.paydirekt.app")) {
			return true;
		}
	}
	return false;
}