2015-07-17 15 views
5

Desidero aggiungere il pagamento NFC a un'applicazione Android su cui sto lavorando per consentire agli utenti di pagare direttamente a un POS. Sono interessato a supportare il maggior POS possibile.Come implementare i pagamenti NFC?

Mi chiedevo se è davvero possibile o dipende da protocolli/hardware propietari.

Ho trovato informazioni (e esempi di codice) sulla lettura delle informazioni della carta contacless ma non riesco a trovare alcuna libreria o codice sul pagamento stesso.

Conosco le specifiche EMV ma sembra piuttosto lungo e tecnico e vorrei sapere se è davvero possibile prima di immergervi.

Non possiamo utilizzare Google Wallet perché non sono negli Stati Uniti.

+1

Hai intenzione di emulare una carta di credito/debito con la tua applicazione? – mictter

risposta

6

Non sarà in grado di sostenere il pagamento NFC nell'applicazione, se non si è una banca con un accordo Visa/Mastercard/etc e avere accesso a un certificato per firmare le tue transazioni EMV.

Contactless EMV transactions are not encrypted. Questo è il motivo per cui puoi facilmente annusare una transazione senza contatto o leggere le informazioni di una carta di pagamento contactless.

Le transazioni sono ancora protette a causa di un certificato incorporato nella carta, specifico per l'emittente della carta (es: Visa, mastercard). Questo certificato è protetto (non può essere letto). Viene utilizzato per firmare i dettagli della transazione (importo, data, identificatore casuale, ecc.), In modo che il POS e il processore di transazione (sul lato bancario) possano autenticare e convalidare la transazione. Senza una firma valida, la transazione verrà rifiutata.

Tuttavia, poiché tutti i principali emittenti di carte hanno aggiunto il supporto di pagamento mobile alle loro ultime specifiche (es: mastercard PayPass 3.0, Visa PayWave 2.1). Potrebbero eventualmente offrire API per altre app sul telefono per avviare tranasctions. Tuttavia, la mia comprensione è che i telefoni avranno bisogno di hardware specifico (es: un criptoprocessore) per elaborare le transazioni.