10 min Android Braintree (Paypal) integration

Braintree is a paypal payment portal which provides sdks for android, ios, .net core to help you pay via paypal.

How you do it? There are 3 main steps to do it

1. Add BrainTree Drop-In
2. setup onActivityResult
3. Add Braintree activity to your manifest file.

1. Drop In

Drop-in is a quickest way to enable paypal in your app. It handle UI and application from.
Say a user clicks on "pay using paypal", it should run the following codes

private void OpenDropIn()
          DropInRequest dropInRequest = new DropInRequest()

    if (Settings.isPayPalAddressScopeRequested(this)) {

    startActivityForResult(dropInRequest.getIntent(this), DROP_IN_REQUEST);

Next you will handle results (after Braintree release control back to your app) using sample code below

2. onActivityResult

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK) {
        PaymentConfirmation confirm = data.getParcelableExtra(PaymentlActivity.EXTRA_PAYMENT);
        if (confirm != null) {
            try {
                Log.i("paymentExample", confirm.toJSONObject().toString(4));

                // TODO: send 'confirm' to your server for verification.                // see https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/                // for more details.
            } catch (JSONException e) {
                Log.e("paymentExample", "an extremely unlikely failure occurred: ", e);
    else if (resultCode == Activity.RESULT_CANCELED) {
        Log.i("paymentExample", "The user canceled.");
    else if (resultCode == PaymentlActivity.RESULT_EXTRAS_INVALID) {
        Log.i("paymentExample", "An invalid Payment or PayPalConfiguration was submitted. Please see the docs.");

3. Manifest

Yeap this is required. Otherwise you will not be able see Drop-In application flow

<activity android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity"    android:launchMode="singleTask">
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="${applicationId}.braintree" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />


Popular posts from this blog

ionic2 cordova build android - Unable resolve gradle 2.2.3

A quick tutorial for OWASP ZAP tool for beginners