Virtual Card Checkout

Plugin icon

Virtual Card Checkout

Overview

Items you will need:

  • The Zip Android SDK
  • The Start Checkout call in your Android app
  • An order confirmation endpoint on your server

Implementation

The Zip Android SDK

  • Our SDK is currently only available privately, please inquire with your Zip Account Manager.

How to start a Zip checkout

Add Zip
Add:

mavenCentral()

to your repositories then add:

implementation 'com.quadpay:quadpay:0.3.7@aar'

to build.gradle

Consult your Account manager about the version you should include!

Initialize the Zip SDK

Your Merchant ID will be provided by your Zip Integrations Engineer.

QuadPay.initialize(new QuadPay.Configuration.Builder("<your-merchant_id>")
     .setEnvironment(QuadPay.Environment.SANDBOX)
     .setLocale(QuadPay.Locale.US)
     .build()
);

Begin the Zip checkout flow

Once presented the customer will be shown the Zip checkout flow.

final QuadPayCheckoutDetails details = new QuadPayCheckoutDetails();
details.amount = "100";
details.customerFirstName = "Zip";
details.customerLastName = "Customer";
details.customerEmail = "[email protected]";
details.customerPhoneNumber = "+15555555555";
details.customerAddressLine1 = "123 Main St";
details.customerAddressLine2 = "10th Floor";
details.customerPostalCode = "10003";
details.customerCity = "New York";
details.customerState = "NY";
details.customerCountry = "US";
details.merchantFeeForPaymentPlan: "0";
details.merchantReference = "<your-unique-order-id>";

QuadPay.startVirtualCheckout(<your activity instance>, details);

Implement the checkout delegate functions:

These functions give your application information regarding the result of the Zip checkout flow.

Register for activity results

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
   if (QuadPay.handleQuadPayActivityResults(
           this,
           requestCode,
           resultCode,
           data
   )) {
       return;
   }
   super.onActivityResult(requestCode, resultCode, data);
}

Checkout Success

This function returns a token you may exchange to confirm an order has been created.

@Override
public void checkoutSuccessful(QuadPayCard card, QuadPayCardholder cardholder, String orderId) {
  // Submit the card and cardholder details through your standard payment processor!
}

Checkout Cancelled

This function is called when the user cancels the Zip process or is declined.

@Override
public void checkoutCancelled(String reason) {
    // A reason describing why checkout was cancelled is returned
}

Finishing the Zip order

Once you have received a virtual card number in a success delegate you may authorize and capture it up to the value provided at the beginning of checkout. The card that is issued is a standard Visa card and all authorize/capture/refund functionality will work as expected.

More information and frequently asked questions are available at https://developers.zip.co/v9-US/docs/how-it-works.