Android
Currently there are two ways to integrate Zip into your mobile Android app:
- Most similar to our traditional integration
- Robust features and options for creating and managing orders
- Quickest to implement when you can accept standard Visa credit cards
- Uses identical rails to a standard Visa credit card transaction
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
- Please see the link to our SDK where our current version number can be seen - https://repo1.maven.org/maven2/com/quadpay/quadpay/
How to start a Zip checkout
Add Zip
Add
mavenCentral()
to your repositories then add
implementation 'com.quadpay:quadpay:0.3.8@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 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.merchantReference = "<your-unique-order-id>";
QuadPay.startCheckout(<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 an order id you may use to confirm an order has been created.
@Override
public void checkoutSuccessful(String orderId) {
// The user has completed checkout -- the order id must be used to confirm the transaction from the backend
}
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
}
Confirming your Zip orders
As soon as your customer has completed checkout an order id will be issued. To finalize the transaction this order id must be submitted to Zip's confirmation endpoint. The order id will last for 24 hours under default settings to be confirmed.
The timing of your shipping can be any time after you have confirmed the order. When submitting the order id you will have a chance to finalize the order amount.
Post the order id to the confirmation endpoint
See https://docs.quadpay.com/docs/custom-integration-guide#signing-requests for information regarding signing requests
Post:
curl -X post https://gateway.quadpay.com/orders/{orderId}/confirm
-H 'content-type: application/json'
-H 'X-QP-Signature: [signature]'
-d '{
"orderId": [orderId],
"totalOrderAmount": <number>, (optional)
"taxAmount": <number>, (optional),
"shippingAmount": <number>, (optional)
}'
An order id will be returned:
{
"orderId": [order id]
}
Service after confirmation
Once the order has been confirmed and an order id has been received the user should be guided to a success page.
This order id can also be used to update the order using our normal orders integration api at https://docs.quadpay.com/docs/custom-integration-guide
Overview
Items you will need:
- The Zip Android SDK
- The Start Checkout call in your Android app
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 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, 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 Vard 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.us.zip.co/docs/virtual-checkout.
Need Help?
Please reach out to [email protected] if you have any questions or if you need assistance.
Updated over 1 year ago