Search code examples
android-pay

Android Pay errorCode = 8 when generating MaskedWalletRequest


I'm building a MaskedWalletRequest:

return MaskedWalletRequest.newBuilder()

    // required fields
    .setCurrencyCode(CURRENCY_CODE)
    .setEstimatedTotalPrice(String.valueOf(order.getTotal()))

    // optional fields
    .setShippingAddressRequired(false)
    .setMerchantName(MERCHANT_NAME)
    .setPhoneNumberRequired(false)
    .setPaymentMethodTokenizationParameters(tokenizationParameters)
    .setMerchantTransactionId(String.valueOf(order.getId()))
    .addAllowedCardNetwork(123)
    .build();

I then start SupportWalletFragment:

SupportWalletFragment supportWalletFragment 
    SupportWalletFragment.newInstance(walletFragmentOptions);

MaskedWalletRequest maskedWalletRequest = createMaskedWalletRequest();

WalletFragmentInitParams initParams = 
    createWalletFragmentInitParams(maskedWalletRequest);

supportWalletFragment.initialize(initParams);

When I click on generated Android Pay button, my onActivityResult gets correct request code, result code = 1, and data Intent has error value of 8.

I don't see this error code in the WalletConstants class (link ). What am I missing?


Solution

  • It looks like the "8" may be coming from the CommonStatusCodes class.

    It turns out the allowed card network was invalid. I just dropped '123' in there for a quick test. I can only pass in one of these network ints. I was hoping for a much more clear error string like the other errors generated during the Android Pay process.