question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Google Pay/Wallet TapAndPay API calls prevent parts of banking apps (e.g. Vivid Money) from loading, issues related to isReadyToPay() already resolved

See original GitHub issue

Vivid Money

Description

Vivid Money is a German fintech offering bank services managed via an Android app. A customer can have multiple bank accounts. Most of the app functionality works fine with MicroG, however an account (“pocket”) screen never completes loading if a card is linked to the account. There is no error message shown to the user. Other account screens load immediately and can be used without problems.

  • Package name: vivid.money
  • Package version: 1.20.0.480 (Nov 24, 2020)
  • MicroG version: 0.2.14.204215 (latest GitHub release build as of Nov 25, 2020)
  • To reproduce, one has to log in to the app and tap on an account with a card linked to it; by default this is the Main pocket label.

Cause

ADB logcat inspection reveals the likely cause to be the Google Pay (formerly Google Wallet) integration, specifically the TapAndPay API calls:

D GmsTapAndPaySvc: onBind: Intent { act=com.google.android.gms.tapandpay.service.BIND pkg=com.google.android.gms }
D GmsTapAndPaySvc: bound by: GetServiceRequest{serviceId=TAP_AND_PAY, gmsVersion=12451000, packageName='vivid.money', extras=Bundle[{}]}
D GmsTapAndPayImpl: onTransact [unknown]: 21, android.os.Parcel@2bd3dc, 16
D GmsTapAndPayImpl: onTransact [unknown]: 21, android.os.Parcel@55e6ce5, 16

When other account screens load succesfully there are no such calls logged.

Workaround

The app allows the opening of several sub-accounts and reassigning the card to any of them, with immediate effect. Thus, you can link the card to an account other than the one you want to view or make changes to, open the account screen, which will now work, and relink the card back to the original account once you’re finished.

Related Issues

It seems similar issues affected a number of other apps relating to banking and payments in the past. Some of them have already been resolved. This is to keep track of all of them:

Confirmed

Resolved

  • #626: Revolut (com.revolut.revolut) Resolved as of 2020-11-03 per comment
  • #987: Yandex Taxi (ru.yandex.taxi); #994: Uber (com.ubercab); #1006: Uber Eats (com.ubercab.eats) Resolved as of 2020-11-27 per @selurvedu’s comment (note: some of the earlier discussion for these issues related to Mapbox problems, which are unrelated)
  • #1162 (comment): Vinted.pl (pl.vinted) Last confirmed 2020-10-20 (recently), however an update to MicroG as of 2020-11-25 might have fixed this issue. Resolved as of 2020-11-26 per @Natalcia’s comment
  • #1207: N26 Bank (de.number26.android), another German fintech, however the issue there is related to GmsWalletPaySvc and GmsWalletOwSvc instead, also there exists a workaround (downgrade to an older app version before Google Pay integration) No longer an issue as of 2020-11-26, apparently was addressed earlier on the application side, per @ArchangeGabriel’s comment

Unconfirmed

  • #372: Google Assistant (com.google.android.googlequicksearchbox) Last confirmed 2017-12-07 (3 years ago). Might also be outside of the scope of the MicroG project since the issue pertains to a Google app.
  • #971: First Bus (com.firstgroup.first.bus) Last confirmed 2019-11-11 (a year ago).

Current Status

According to @mar-v-in’s comment, the current situation is (emphasis mine):

  • The Wallet Payment API isReadyToPay() dummy always returns that payment via Google Wallet Payment API is not available, so this should fix all apps that use that API for checkout / payment
  • The SafeParcel unknown fields are not an issue (though I could probably get rid of some of them easily so that logs are not spammed that much).
  • Banking apps sometimes use the TapAndPay API which allows them to add your bank account to Google Pay / Android Pay. This API is not yet implemented and probably causing issues here. As I guess one needs a bank account with that bank to try out, I can try to provide test builds, but debugging that way obviously is much harder.

What follows:

  • Before reporting any issues that might be related to Google Pay/Wallet, make sure to update to version 0.2.14.204215 of 2020-11-25 or newer, and check if the issue is still present, as many of them should be resolved with this version
  • When posting logcat dumps, ignore anything related to SafeParcel
  • The TapAndPay API is not expected to work as of now

Issue Analytics

  • State:open
  • Created 3 years ago
  • Reactions:5
  • Comments:16 (3 by maintainers)

github_iconTop GitHub Comments

3reactions
mar-v-incommented, Nov 27, 2020
  • The Wallet Payment API isReadyToPay() dummy always returns that payment via Google Wallet Payment API is not available, so this should fix all apps that use that API for checkout / payment
  • The SafeParcel unknown fields are not an issue (though I could probably get rid of some of them easily so that logs are not spammed that much).
  • Banking apps sometimes use the TapAndPay API which allows them to add your bank account to Google Pay / Android Pay. This API is not yet implemented and probably causing issues here. As I guess one needs a bank account with that bank to try out, I can try to provide test builds, but debugging that way obviously is much harder.
1reaction
selurveducommented, Nov 27, 2020

A dummy isReadyToPay() API fixed the payment option screens in Uber (see https://github.com/microg/GmsCore/issues/994#issuecomment-734960495) and a few other apps. Viva Marvin!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Fix problems with tap to pay transactions - Google Wallet Help
If you can't complete a contactless payment, use these steps to help you solve the problem. Step 1: Check that your app &...
Read more >
Troubleshooting | Google Pay API for Android
The Android troubleshooting guide covers issues and questions related to the following topics. App is currently running within a test environment; Request ......
Read more >
Google Wallet tap to pay not working due to bugged security ...
A bug with Google Wallet's security check is blocking payments for some people because the app thinks their phones are rooted.
Read more >
My First Blog Post - Hand Of God Wines
Vestibulum pharetra, orci id aliquet venenatis, velit turpis rutrum velit, eget pharetra turpis lectus nec massa. In ultricies massa a tortor blandit cursus....
Read more >
Computerized method and system for providing customized ...
For example, (for example, advertisement is shared in the first equipment (such as the television set of family or commercial facility) and/or personal...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found