Support for Android Pay on Vantiv Core
Android Pay is an in-store and in-app (mobile or web) payment method, providing a secure process for consumers to purchase goods and services. In-store purchases are done by using Near Field Communication (NFC) technology built into the Android Smart phone with any NFC-enabled terminal at the retail POS. For in-app purchases, the consumer need only select Android Pay as the payment method in your application. You will need to modify your application to use Android Pay as a payment method.
- Android Pay API Getting Started (for in-app integrations)
- Android Pay API Reference Guide
- Enterprise eProtect Integration Guide
- Vantiv ISO 8583 Reference Guide
- Vantiv 610 Interface Reference Guide
Two methods of Integration
Vantiv supports two methods for merchants to submit Android Pay transactions from Web/Mobile applications to the eCommerce platform.
- eProtect: The preferred method involves you sending certain Vantiv specific parameters to Google®. With this method, Google will call Vantiv's eProtect interface on your behalf. The response from Google includes a Vantiv eProtect paypageRegistrationId, which you use in you payment transaction submission to Vantiv.
- Alternate method: With the alternate method, you receive encrypted information from Google, decrypt it on your servers, and submit the information to Vantiv in a payment transaction. In this method Android Pay will package the EMVCo token and will return it in response to an Android Pay FullWalletRequest() as part of a 3DS encrypted package (versus the individual data elements). This means that the 3DS package needs to be decrypted and parsed by the merchant before the transaction can be processed.
If you are already integrated to our core payment platforms, and are interested in adding support for Android Pay in-app, please contact us and we will connect you with an integration consultant. The integration consultant can you help identify the best integration method depending on your requirements..
Overview of eProtect Integration Method
When the consumer clicks the Android Pay button in your application, the action triggers a MaskedWalletRequest to Google. In the MaskedWalletRequest, you must set a new object PaymentMethodTokenizationParameters indicating that you are using Vantiv. Use the following code sample as a guide to setting this field.
PaymentMethodTokenizationParameters parameters = PaymentMethodTokenizationParameters .newBuilder() .setPaymentMethodTokenizationType(PaymentMethodTokenizationType.PAYMENT_GATEWAY) .addParameter("gateway","vantiv") .addParameter("vantiv:merchantPayPageId",payPageId) .addParameter("vantiv:merchantOrderId",orderId) .addParameter("vantiv:merchantTransactionId",id) .addParameter("vantiv:merchantReportGroup",reportGroup) .build();
The payPageId is an eProtect credential that will be supplied to you by Vantiv. You can provide your own unique orderId, id and reportGroup designator that will be used for identifying and reporting on transactions in the Vantiv iQ portal.
You will need to use the same orderId above in your subsequent Authorization, Sale or Register Token calls to ensure that customers can track their orders using the Android Pay application.
You will then reference the PaymentMethodTokenizationParameters when you create the MaskedWalletRequest in your Android application.
MaskedWalletRequest request = MaskedWalletRequest.newBuilder() .setMerchantName(Constants.MERCHANT_NAME) .setPhoneNumberRequired(true) .setShippingAddressRequired(true) .setCurrencyCode(Constants.CURRENCY_CODE_USD) .setEstimatedTotalPrice(cartTotal) .setCart(Car.newBuilder() .setCurrencyCode(Constants.CURRENCY_CODE_USD) .setTotalPrice(cartTotal) .setLineItems(lineItems) .build()) .setPaymentMethodTokenizationParameters(parameters) .build();
The information returned by Google in the MaskedWallet object may include a masked card number (last-four digits exposed) and shipping information. The consumer has the option of changing this information. If any info changes, Android Pay returns an updated MaskedWallet object.
- Upon confirmation of the order by the consumer your application initiates a FullWalletRequest to Google.
- After receiving the FullWalletRequest from your application, Google submits the card information in the Google wallet to Vantiv eProtect. The eProtect server vaults the credential and returns a low-value token (paypageRegistrationId).
- Google returns the low-value token to your application along with the Full Wallet information.
- Your application sends the transaction information to your servers along with the low-value token. Your servers submit the Auth/Sale transaction to the ISO 8583 platform as they normally would. You must set the orderSource to androidpay in the transaction. Be sure and check section 2.5 of the Vantiv Enterprise eProtect Integration Guide for examples of how to use a Registration ID (the paypageRegistrationId) in your ISO 8583 or 610 transaction.
- Vantiv processes your transaction normally and returns the results along with a high-value token.
Transaction Examples using ISO 8583, 610 or HHMI
Most developers adding Android Pay support will already be familiar with how to performance transactions like Authorizations or Sales using Vantiv's core platforms so information is not repeated here.
Transaction examples can be found in the manual Vantiv Enterprise eProtect Integration Guide in Section 2.5, Transaction Examples When Using ISO 8583, 610. HHMI, and PWS.
Additional information about Vantiv core platforms available in the Vantiv O.N.E. Enterprise space. Vantiv O.N.E. members can access our Technical Guides and Resources for Enterprise Integrations