View Issue Details

IDProjectCategoryView StatusLast Update
0008548Talerwallet (Android App)public2024-08-28 23:31
Reportergrote Assigned Toavalos  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.13Fixed in Version0.13 
Summary0008548: Implement NFC for p2p invoicing
DescriptionWhen p2p invoicing, NFC payments should work; they don't atm

Reproduction:
0. ensure phones a and b have nfc on, ensure phone a can act as nfc tag
1. create invoice on phone a
2. attempt to use nfc on phone b with phone a
3. nothing happens
TagsNo tags attached.

Activities

avalos

2024-03-22 19:01

developer   ~0021978

Last edited: 2024-03-22 19:01

I only have one NFC enabled Android phone, so I can't test this atm.

@MarcS can this be tested with an Android and an iPhone?

MarcS

2024-03-22 19:50

developer   ~0021980

Last edited: 2024-03-22 19:54

On iOS, currently we can only be 'receiver' (read NFC tag ~ scan QR code), not 'initiator' (emulate NFC tag ~ show QR code).
We have requested the ability to emulate an NFC tag on iOS also (because of the european DMA), but Apple is still evaluating our request.
The reading function is working OOTB on any newer iPhone (except the iPhone SE 2nd Gen), but you have to manually activate the NFC reader on some older iPhones (X, 8). And it doesn't work at all on iPhone 7, 6S, and SE 1st Gen and 2nd Gen, even though these can use NFC to emulate credit and banking cards. But they cannot read NFC tags.

If you can emulate an NFC tag on Android when you show a QR code (with the same TalerURI), then an iPhone user can either scan the QR or just bring their iPhone near the Android to read the TalerURI via NFC.
So, tap-to-pay is possible, from Android to iPhone - but not the other way round (until Apple lets us emulate an NFC tag on iOS).

avalos

2024-06-17 16:24

developer   ~0022650

I will test between Android and iOS, but I suspect that in Torsten's example, phone B is Android and that's where the issue is.

I will postpone this to 0.13, as I don't think it will be ready for 0.12.

MarcS

2024-06-18 07:22

developer   ~0022656

To test whether the culprit is phone A (initiator, emulate tag) or B (receiver, read tag), you could program a TalerURI into an NFC tag and test whether the Android B can read this. On iOS, this works fine...

avalos

2024-06-18 18:59

developer   ~0022667

I don't have an NFC tag atm, so I can't test that scenario.

Should I buy one?

MarcS

2024-06-18 19:19

developer   ~0022668

They're cheap. I bought 10 pieces for 8€ at Amazon...

avalos

2024-06-22 01:27

developer   ~0022703

The NFC tags that I ordered just arrived. I did some testing with one of them, and apparently Android is reading them well, the OS simply offers the user to open the URI with Taler. However, it seems that app can't send payments or invoices via NFC, I will look into it.

MarcS

2024-06-22 05:37

developer   ~0022704

Since the payment direction is independent of the question who started the procedure, I always use "initiator" and "initiate" to describe the function where the device that shows the QR code at the same time starts emulating an NFC TAG and broadcasting data...

avalos

2024-06-24 21:53

developer   ~0022719

Investigating right now.

avalos

2024-07-13 05:07

developer   ~0022816

Last edited: 2024-07-13 05:45

Initial implementation that handles all taler:// URIs (and emulates p2p URIs) has been pushed to dev/ivan-avalos/nfc2.

avalos

2024-07-17 00:30

developer   ~0022825

Implemented in 9685a754582ce89b1f29ab062bc67d0696422f72..6337d1a58fba3ab5c1f5199445284c9645d3e59c

Issue History

Date Modified Username Field Change
2024-02-29 15:31 grote New Issue
2024-02-29 15:31 grote Status new => assigned
2024-02-29 15:31 grote Assigned To => avalos
2024-03-03 14:20 Christian Grothoff Product Version => git (master)
2024-03-03 14:20 Christian Grothoff Target Version => 0.11
2024-03-22 19:01 avalos Note Added: 0021978
2024-03-22 19:01 avalos Note Edited: 0021978
2024-03-22 19:01 avalos Note Edited: 0021978
2024-03-22 19:50 MarcS Note Added: 0021980
2024-03-22 19:51 MarcS Note Edited: 0021980
2024-03-22 19:54 MarcS Note Edited: 0021980
2024-05-13 21:24 Christian Grothoff Target Version 0.11 => 0.12
2024-06-17 16:24 avalos Note Added: 0022650
2024-06-17 16:24 avalos Target Version 0.12 => 0.13
2024-06-18 07:22 MarcS Note Added: 0022656
2024-06-18 18:59 avalos Note Added: 0022667
2024-06-18 19:19 MarcS Note Added: 0022668
2024-06-22 01:27 avalos Note Added: 0022703
2024-06-22 05:37 MarcS Note Added: 0022704
2024-06-24 21:53 avalos Status assigned => confirmed
2024-06-24 21:53 avalos Note Added: 0022719
2024-07-13 05:07 avalos Note Added: 0022816
2024-07-13 05:45 avalos Note Edited: 0022816
2024-07-17 00:30 avalos Note Added: 0022825
2024-07-17 18:04 avalos Status confirmed => resolved
2024-07-17 18:04 avalos Resolution open => fixed
2024-08-26 22:29 Christian Grothoff Fixed in Version => 0.13
2024-08-28 23:31 Christian Grothoff Status resolved => closed