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:[email protected]'

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 account manager.

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 QuadPay 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) {
  // 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://docs.quadpay.com/docs/virtual-checkout