Getting started

Note: If you haven’t chosen your integration method yet, begin by selecting your method and following the ‘What to do next’ steps first.

Integrate simple and secure in-app card payments into your Android app. See our sample app for more information.

Judopay’s Out-of-the-box UI comes with built-in checks and security features, including real-time error detection, 3D Secure, data and address validation for frictionless card data capture.

This minimises PCI compliance and allows you focus on developing other areas of your app. See our UI customization guide to learn more.

Android SDK Customisable


Integration

Requirements

  • Android Studio 2.2 or higher
  • Android SDK Build Tools 25.0.2
  • Your app targets Android API version 16 Jelly Bean or higher
  • Latest Android Support Repository
  • Latest Android Support Library

Installation of the Judopay Android SDK is simple using Android Studio, you don't need to clone a repository, just add the dependency to your app/build.gradle file:

compile 'com.judopay:android-sdk:5.6.10'

In your project-level build.gradle file you will need to add the Judopay Maven repository:>

allprojects {
    repositories {
        jcenter()
        maven {
            url "http://dl.bintray.com/judopay/maven"
        }
    }
}

Setup

To start setting up your app, please complete all the relevant integration steps in the setup section. By following these steps, you are ensuring that your app will be secure and frictionless for you and your customers.

If you have completed the setup section, start using Judopay’s Android SDK by adding your app’s token and secret to your app’s main Activity class:

Judo judo = new Judo.Builder()
    .setApiToken("<TOKEN>")
    .setApiSecret("<SECRET>")
    .setEnvironment(Judo.SANDBOX)
    .setJudoId("<JUDO_ID>")
    .setAmount("1.00")
    .setCurrency(Currency.GBP)
    .setConsumerReference("<YOUR_REFERENCE>")
    .build();

Note: Please ensure that you are using a unique consumerReference for each request.

The SDK allows further configuration by using the existing Judo.Builder settings. These are the options:

  • Supported card networks – Allows you to determine the accepted card networks when using your app. The default value includes Visa, MasterCard, Maestro and AmEx.

    Note: Processing transactions with AmEx cards requires that your account supports it as well. Please contact us first if you are planning to accept AmEx.

  • Address Verification Service (AVS) – You will be able to capture the consumer’s country and postcode as an additional security layer, learn more about AVS.

    Note: AVS requires an additional configuration at account level. If you are looking to use this feature, please contact us.

  • Fragments – By using Fragments you will gain additional flexibility using the SDK, allowing you to customize the toolbar and handle the app's behavior around events such as when a connection error occurs.


Payment types

Setup the payment types you require for your app. Depending on your chosen integration method you have a variety of payment types.

If you require other payment types, such as reserving funds on a card to collect later, or server side refunds, please see the Docs homepage for all integration methods.


Test sandbox payments

Test your app quickly and securely with different payment types. The Sandbox testing guide will provide you all the details you need to ensure a solid integration. Here are some highlights:

  • Ensure that the SDK is properly configured for sandbox environment.
  • Use the test cards provided in the dashboard, under ‘Tools › Generating transactions’.
  • If 3D Secure is enabled and you want to simulate the 3D Secure screen, contact us for card details.

Check payment result

You can quickly check the transaction results for the calling activity by overriding the onActivityResult method to receive the payment receipt:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == Judo.PAYMENT_REQUEST) {
        switch (resultCode) {
            case Judo.RESULT_SUCCESS:
                Receipt receipt = data.getParcelableExtra(Judo.JUDO_RECEIPT);
                // success
        }
    }
}

Note: Test all the payment types you require in the sandbox environment before going live.


Device DNA

To protect your app from fraud in real-time, Device DNA™ is an essential component of JudoShield that enables Judopay to capture data and device signals at the time of the transaction.

If you are integrating the ‘Mobile and your server side method’, y ou need to use Device DNA on the mobile in conjunction with your backend when making a payment:

Learn more about Device DNA.


UI customization

Use Judopay’s Out-of-the-box UI components for a frictionless checkout in your app. Minimize your PCI scope with a UI that can be themed to match your brand colors.

Built-in features include quick data entry, optional security checks and fraud prevention that allow you to focus on developing other areas of your app.

The Judopay SDK also includes an API client for direct use of Judopay’s RESTful API. This offers the most options for customization, but we recommend that you use the Judopay UI components (Activities & Fragments) to minimize your PCI scope and development time.


Additional resources

Sample app

See the sample app on GitHub for examples on how to integrate the SDK (payments, pre-authorizations, token payments, etc).

Android Pay™

Android Pay is a simple and secure mobile payment solution for Android devices. It allows merchants to accept payments for goods and services. It also accesses buyers’ payment and shipping information from their Google accounts. The Judopay Android SDK lets your app process Android Pay payments, providing a frictionless checkout.

Requirements

  • Android OS 4.4 (KitKat) or later.
  • The public key you received when you set up your Judopay account.

Note: Android Pay is currently in Beta. Please contact us for more details before implementing Android Pay into your app.

Card scanning

Judopay SDK works with card scanning libraries such as card.io. This allows users to quickly enter card data using the camera on their device.

Listing receipts

Judopay SDK also lets you request a list of payment receipts, with options to filter the results.


Ready to go live?

When you have completed these steps, you are ensuring that your app will be secure and frictionless for you and your customers.

Follow the next steps in the Going live guide.