On Android I can't seem to get NFC to work either on my bank's app or on the UnionPay app, though QR codes are not a problem. Bank app offers only Chinese ID as ID option when trying to link, not passport. Hard to unravel where the problem lies without spending two hours at the bank.
The Union Pay app doesn't work for me on iPhone either the last time I tried. Although I recall it wasn't a complete lost cause, I just need to get some time to call up their help desk to figure out how to proceed (it wasn't an issue of not allowing passports, but rather it was claiming that my name/details don't match with the bank information, a common problem in China with foreigners).
HSBC's own app works just fine though and I can use its QR code to pay at POS terminals. But I rarely do that as it's rather inconvenient compared to Apple Pay or just using the physical card. I think the only reason I even attempted it at all was because of a promo that offered a one-time cash back.
These days I mostly use Wechat/Alipay as the HSBC credit card offers double reward points on them.
Oh wait you're talking about using NFC through the bank's app and Union Pay. I didn't even know there was such a thing. I thought on Android all the NFC payment solutions are strictly bound to the phone manufacturer or Google. Are third party app developers even allowed to offer NFC payments?