Integration Steps

Integration Guide for connecting to Jio Payment Solutions Limited Payment Gateway using JAVA Mobile SDK

Make sure that the prerequisites are met before initialization

SDK Integration

Step 1: Add SDK Dependency

If you have received a .aar SDK file, follow these steps to add the SDK to your project:

  1. Place the jio_payments_sdk.aar file into the app/libs/ directory.
  2. Edit your build.gradle (Module: app) file as follows:
repositories {
	flatDir {
		dirs 'libs'
  }
	dependencies {
    implementation files('libs/jio_payments_sdk.aar')
    implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
    api 'com.google.code.gson:gson:2.10.1' // or latest version
    api 'com.fasterxml.jackson.core:jackson-databind:2.17.0'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.4.0'
    implementation libs.androidx.appcompat
	}
}

Step 2: Required Configurations

Android Permissions

Ensure the INTERNET permission is declared in AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

Enable Multidex (Optional)

If your app exceeds the 64K method limit, enable multidex support:

defaultConfig {
  multiDexEnabled true
}

dependencies {
  implementation 'androidx.multidex:multidex:2.0.1'
}

Trigger the Payment Checkout

Below is the sample application’s MainActivity file that can be used to initiate the payment:

public class MainActivityJava extends AppCompatActivity {
		...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        new JioPaySDK.Builder()
        .setEnvironment(environmentConst)
        .setAggregatorId(aggregatorId)
        .setMerchantId(merchantId)
        .setSecret(secretKey)
        .setAmount(amount)
        .setCustomerName(customerName)
        .setCustomerEmailID(customerEmail)
        .setMerchantName(merchantName)
        .setMerchantImage(merchantImage)
        .setMerchantTxnNo(merTxnId)
        .setTimeout(timeout)
        .setPaymentModeAllowed(modes) //"CARD", "NB", "UPI"
        .build();
        ....
    }
		...
}

Accepting response

 // Using ActivityResult API for SDK response
private final ActivityResultLauncher<Intent> responseLauncher =
    registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), result -> {
        if (result.getResultCode() == Activity.RESULT_OK) {
            Intent data = result.getData();
            try {
                JioPaymentResponse response = data.getParcelableExtra(JioPaySDK.RESPONSE);
                showResponseDialog(response.getStatus(), response.getRawJsonResponse());
            } catch (Exception e) {
                showResponseDialog("N/A", "Response Not Available");
            }
            JioPaySDK.clearInstance();
        }
});

Understanding Payment Result Callback

After initiating a payment using the Jio Payment SDK, your application needs to be informed about the outcome-whether the payment was completed, or cancelled. This is where the PaymentResult class and its associated callback mechanism come into play.

Understand Callbacks by following the link


Did this page help you?