[Xposed General] sjevtic:
I did a clean install of Superman ROM 2.8.0 by [MENTION=5899304]Tkkg1994[/MENTION] (Android 7.1) + Magisk w/MagiskSU on my Galaxy S7 (SM-G930FD) back in December. With this combination, I was able to pass SafetyNet, and install Android Pay 1.36.177845727 using the Play Store app. I configured it and began using it without issue. I then installed Systemless Xposed, and even though SafetyNet would fail whenever Xposed is activated in Magisk Manager, Android Pay continued to work normally. Even with Xposed activated, the Play Store settings dialog would report "Certified" in the Device certification field. Nevertheless, apps that prohibit distribution to compromised devices (e.g., Netflix, which I don't have installed) would not show up in Play Store searches. Android Pay would still show up, presumably only because it was already installed on my device.

I have been using Android Pay nearly daily every evening at the supermarket across the street without issue until yesterday. During the day, I upgraded to Magisk 15.4 (from 15.3), Magisk Manager 5.6.0 (from 5.5.0), and Systemless Xposed 89.2 (from 89.1). Nothing appeared different; Android Pay continued to open normally. Note that I have NOT been offered (nor installed from any other source) any updates to Google Play Services in recent weeks; I am on 11.9.75. However, when presenting the device at the supermarket's payment terminal last night, I was greeted by a window featuring a red exclamation point in a circle, an image of my credit card, and the verbiage "You can no longer use Android Pay on this phone". There was a link to activate a feedback form, though I didn't submit feedback. When I backed out of the window, things otherwise seemed normal with respect to Android Pay: I was able to browse my various payment methods, explore the settings dialog, etc. I then disabled Xposed momentarily in Magisk Manager, and was once again able to pass SafetyNet. I haven't had the opportunity of try Android Pay again since this incident.

So, like most in this thread, I am trying to understand the relationship between Android Pay and SafetyNet, as well as any other device integrity checks it makes. Based on the experiences reported in this thread by [MENTION=426237]moneytoo[/MENTION], [MENTION=6625370]sjpage10[/MENTION] and myself, it looks like Android Pay doesn't regularly check SafetyNet, though the Play Store does not offer it to you if your device is failing SafetyNet when you look for it. Obviously, that doesn't preclude sideloading it using an APK from APKMirror or another source.

So, I have a few questions:

It isn't clear to me why Android Pay suddenly stopped working last night. Is this a consequence of my updates, or did something change on the server side? It seems like it might be a bit more than a coincidence that both [MENTION=6625370]sjpage10[/MENTION] and I experienced the same phenomenon within a short period of time.

Is there a convenient way to do complete end to end testing of Android Pay without actually making a charge? It sounds like [MENTION=426237]moneytoo[/MENTION] has some method, but I am not clear what this is.

What does Android Pay actually check to determine if a device is allowed to use it, and when is this checked?

How can I find out the underlying cause of an Android Pay failure? I'll try logcat the next time I attempt to use Android Pay to make a purchase, but any hints on what to look for would be helpful.

Thanks.