3

I would like to accept only Debit Cards to make payment using Google Wallet, I have not find any useful articles or solutions to do so.

Here is the code sample I followed:

private PaymentDataRequest createPaymentDataRequest() {
    PaymentDataRequest.Builder request =
            PaymentDataRequest.newBuilder()
                    .setTransactionInfo(
                            TransactionInfo.newBuilder()
                                    .setTotalPriceStatus(WalletConstants.TOTAL_PRICE_STATUS_FINAL)
                                    .setTotalPrice("10.00")
                                    .setCurrencyCode("USD")
                                    .build())
                    .addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_CARD)
                    .addAllowedPaymentMethod(WalletConstants.PAYMENT_METHOD_TOKENIZED_CARD)
                    .setCardRequirements(
                            CardRequirements.newBuilder()
                                    .addAllowedCardNetworks(
                                            Arrays.asList(
                                                    WalletConstants.CARD_NETWORK_AMEX,
                                                    WalletConstants.CARD_NETWORK_DISCOVER,
                                                    WalletConstants.CARD_NETWORK_VISA,
                                                    WalletConstants.CARD_NETWORK_MASTERCARD))
                                    .setAllowPrepaidCards(false)
                                    .build());

    PaymentMethodTokenizationParameters params =
            PaymentMethodTokenizationParameters.newBuilder()
                    .setPaymentMethodTokenizationType(
                            WalletConstants.PAYMENT_METHOD_TOKENIZATION_TYPE_PAYMENT_GATEWAY)
                    .addParameter("gateway", "xxxx")
                    .addParameter("gatewayMerchantId", "xxxxxxx")
                    .build();

    request.setPaymentMethodTokenizationParameters(params);
    return request.build();
}

Any suggestion would be highly appreciated.

Thanks in advance.

Krrish
  • 271
  • 3
  • 17

1 Answers1

1

It's not currently possible to filter out credit cards in the Google Pay API.

You can, however, check the card type after you receive PaymentData from the intent using getCardClass():

PaymentData paymentData = PaymentData.getFromIntent(intent);
if (paymentData.getCardInfo().getCardClass() != WalletConstants.CARD_CLASS_DEBIT) {
    // show error to user
}
fstanis
  • 5,234
  • 1
  • 23
  • 42