We have implemented Google Wallet Push Provision with Galileo following this guide: Galileo Documentation and Google Wallet Push Provision API details
I have followed the logics provided in the google wallet sample application. Following the method implemented for adding the card to wallet.
@PluginMethod
fun addCardtoWallet(pluginCall: PluginCall) {
MainActivity.gpayListener = pluginCall;
val opc = pluginCall.getString("opaquePaymentCard")
val last4Digit = pluginCall.getString("last4Digit")
val address = pluginCall.getObject("userAddress")
val opcBytes: ByteArray = opc?.toByteArray() ?: byteArrayOf()
val address1 = address.getString("address1")
val countryCode = address.getString("countryCode")
val locality = address.getString("locality")
val administrativeArea = address.getString("administrativeArea")
val name = address.getString("name")
val phoneNo = address.getString("phoneNo")
val postalCode = address.getString("postalCode")
val userAddress = UserAddress.newBuilder()
.setName(name.toString())
.setAddress1(address1.toString())
.setLocality(locality.toString())
.setAdministrativeArea(administrativeArea.toString())
.setCountryCode(countryCode.toString())
.setPostalCode(postalCode.toString())
.setPhoneNumber(phoneNo.toString())
.build()
val pushTokenizeRequest = PushTokenizeRequest.Builder()
.setOpaquePaymentCard(opcBytes)
.setNetwork(TapAndPay.CARD_NETWORK_MASTERCARD)
.setTokenServiceProvider(TapAndPay.TOKEN_PROVIDER_MASTERCARD)
.setDisplayName("Spruce Card")
.setLastDigits(last4Digit.toString())
.setUserAddress(userAddress)
.build()
tapAndPayClient!!.pushTokenize(activity, pushTokenizeRequest, 3)
}
Everything seems to be working fine and we have released this feature to production for the internal users. When we test the application in production, adding the card to wallet working fine for at least 10 to 12 times. After that when we try to add the card to wallet, we are seeing the following error. If anyone have idea on this, can you please help us to understand the issue.