Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >移动支付方式要被这壶老酒颠覆了

移动支付方式要被这壶老酒颠覆了

作者头像
曲水流觞
发布于 2019-10-27 16:09:52
发布于 2019-10-27 16:09:52
1.4K0
举报
文章被收录于专栏:曲水流觞TechRill曲水流觞TechRill

最近华为推出了一种"新颖"的支付方式:碰一碰支付。用户使用手机接触一下支付标签,就可以调起支付程序,输入密码就可以完成支付。这一支付方式被一众KOL捧上了天:“移动支付的未来”,"颠覆支付宝和微信的支付方式"...讲真的,你们难道忘记了Apple pay么?新壶老酒也值得炒一番?不过这酒真香...

今天我们就来喝一喝这壶老酒!

先闻酒香

碰一碰支付,Apple Pay,Google Pay,Samsung Pay,Mi Pay, 华为Pay... 这些碰一下就能支付的方式到底是什么呢?答案就是近场通讯,简称NFC。近场通讯又称近距离无线通信,其本身来说就是一套通信协议,能让两个电子设备在相距几厘米之内进行通信。

NFC早期进入我们生活中应用场景多见于交通卡,各种会员卡以及门禁卡。最早由诺基亚在2006年推出了带NFC功能的手机,但是由于比较小众,并没有被大众所熟悉。大众对NFC功能的手机有所了解和应用还是在Google的Android Beam和三星的S beam推出之后,NFC主要用来传输网址,地图信息,联系人以及Wi-Fi Direct的预连接。然而代替银行卡和信用卡的支付功能却迟迟没有推出,一方面是局限于银行的合作,另一方面用户也一片看衰,认为不够安全,以至于直到15年各厂商才正式推出。同期国内的终端厂商和移动运营商另辟蹊径,用NFC的技术使手机代替了公交卡和门禁卡,这一“黑科技”受到很多人的欢迎和追捧。现在很多品牌都在开发自己的钱包应用,让自己的设备支持近场支付,近场支付开始逐渐普及开来。

干了这壶老酒

要实现这种碰一碰的支付方式是非常复杂的,里面涉及到很多金融方面的问题。但是其本质还是在碰一碰的过程中传输了用户的账户ID(虚拟账户ID),因此今天我们就通过Android上实现NFC数据交换来了解下这种碰一碰支付的原理。

基础知识

开始之前,我们先来了解一些干货(请自带水壶,很干难以下噎)。

01

NFC的工作原理

完成一次近场通讯必须得有两个设备,NFC发起设备(主设备),NFC接收设备(从设备)。主设备提供射频场,它可以选择不同的传输速度。从设备本身不必要产生射频场。在接受到主设备的射频场后,自身通过负载调制技术,即可以通过相同的速度将数据传回发起设备。

02

NFC的工作模式

01

读写模式: 设备本身作为主设备,提供射频磁场,用来读写卡片,标签等等。比如POS机,手机,门禁...

02

卡模拟模式: 设备本身作为从设备(被当做是某种射频技术的卡片),本身不提供射频场。 比如:Apply pay,Google pay...

03

点对点模式: 两个设备之间建立连接并传输数据。如: Android Beam

讲到这里了,就要解释下,为什么前有Apply pay,Google pay以及各种其他pay,华为的碰一碰还会被各KOL炒起来呢?因为区别于其他pay的工作模式,碰一碰pay是利用了读写模式,而非卡模拟模式。这其中的区别就在于碰一碰这种支付方式,收款方只要有一个标签(卡片)即可,而Apply pay等其他支付方式,收款方则需要一个pos机。一张卡片的成本也就是几毛钱,而一个pos机的成本要大得多。

那么我为什么要说这是一壶老酒呢?因为其工作原理是一样的。只不过一个是作为主设备,一个是作为从设备,工作的模式不同而已。

03

NFC TAG

NFC TAG也就是NFC 标签,NFC工作中的从设备,淘宝上可以买到各种各样的标签,有纸片状的,也有卡片状的。价格低廉,白卡可自行写入读取。有兴趣的可以买来玩一玩。

Tips:一般标签内只会记录用户的ID信息,而不会将其他信息或者金额记录在卡片内

NFC的实现

一般来说,完成一次Apple pay之类的模拟支付,需要一台手机和一个pos机; 完成一次碰一碰的模拟支付,需要一台手机和一个标签。但是我现在既没有pos机,也没有NFC标签。但是通过上面的介绍可以知道,这两种支付方式里,手机一个是作为主设备的,一个是作为从设备的。那么我们就可以通过两台Android手机来模拟一次支付场景。

01

主设备的实现

从上面的工作原理图中可以看出,主设备需要在从设备靠近时,发现从设备,向从设备发送初始命令,接受从设备应答

发现从设备

当TAG靠近时,支持NFC功能的Android设备系统内的TAG分发系统会将TAG信息通过Intent的方式发送到相关应用,相关应用通过过滤Itnent就可以接受到TAG的信息,如果说有多个应用能够处理Intent的话,那么系统将会弹出选项让用户选择处理TAG。

Android提供了三个Action用来过滤Intent:

  • ACTION_NDEF_DISCOVERED
  • ACTION_TECH_DISCOVERED
  • ACTION_TAG_DISCOVERED

优先级由高到低

从设备过滤

对于不同的Action有不同的过滤方式:

对于 ACTION_NDEF_DISCOVERED的Action,过滤方式有两种,一种是MIME TYPE 一种是URL

对于 ACTION_TECH_DISCOVERED的Action,则是通过TAG的Tech来过滤的

获取从设备信息

NFC Service将TAG发现的Intent发送到各个应用时,是附加了TAG的信息的。Intent中包含了三个信息:

  • EXTRA_TAG Tag的对象
  • EXTRA_NDEF_MESSAGE NDEF Message的数组,在发送NDEF_DISCOVERED Action的intent时,这个是必须的
  • EXTRA_ID 一个低级别的标签标识

获取TAG对象

解析NDEF Message数据

从设备读写

获取从设备的对象之后,就可以对从设备进行读写操作,对于不同标准的从设备,读写的命令不同。详细的命令需要参照各个从设备对应的标准规范,例如IsoDep遵守的是ISO/IEC 7816-4定义的应用数据协议单元规范,而NfcA 遵守的是ISO/IEC 14443 type A的协议

IosDep选择AID的命令发送与接收

很惭愧,对于ISO/IEC 7816-4的协议不够了解,所以这里只有参考google sample里的 SELECT AID的命令

Android官网上也提供了对 MIFARE Ultralight TAG 读写的例子,有兴趣的童鞋可以看看。

02

从设备的实现

手机被当做一个从设备被其他设备读取,这种工作模式叫做卡模拟模式,这种模式的实现方式有两种:

  1. 带有安全单元的仿真卡模式
  2. 基于主机的仿真卡模式。

这两种实现方式区别在于,在交易时,带有安全单元的模式不会调起应用,而是读取设备跟安全单元交互,完成后应用可以通过访问安全单元来获取交易状态。而基于主机的仿真模式则是在交易时调用了相关的应用。

我们这里先实现基于主机的仿真卡模式(Host-base Card Emulation),简称HCE。要实现这种方式,也比较简单!

继承HostApduService

首先,继承HostApduService的服务,实现里面两个方法: processCommandApdu和onDeactivated;

  • processCommandApdu 这个方法是用来接受读取设备发送过来的命令,并做出相应的回应。
  • onDeactivated 是在设备断开连接时调用的。

processCommandApdu的具体实现

然后需要在Manifest文件中注册此服务:

注册服务

需要注意这里有一个permission,表示具有BIND_NFC_SERVICE权限的应用才能调起此服务,此权限是系统权限,其他应用无法申请此权限,因此也保证了安全性。

服务指向了一个apdu服务的配置文件:

apdu配置

  • description:简短的描述,有可能会展示在setting中
  • apduServiceBanner:一个图片,规定大小为:260*96 dp,会展示在setting中
  • requireDeviceUnlock:服务响应是否需要屏幕解锁
  • aid-group: 定义了能够相应的AID,也就是说如果不是这些AID,这个服务不会被调起
  • category:AID的用途,一般payment 或者 other

03

权限申请

无论是主设备还是从设备的实现,都必须要具有NFC功能的手机,因此权限申请必不可少:

04

申明

由于对NFC通信协议认知的局限性,文中没有过多的展示主从设备通信的代码。文中的代码也参考了Google Sample中关于CardReader和CardEmulation的实现。

聊聊这壶老酒

相比二维码支付方式,近场支付便捷的地方在于,用户不用事先打开支付APP和扫码页面,只需要将手机靠近收款设备即可调用出支付页面。在凡事求快的生活节奏里,这样的支付方式是必然的趋势。但目前来说个人觉得近场支付想要取代二维码的支付方式还需要很长一段时间,毕竟支持NFC的手机还没普及。

咦?为什么说话越来越像一众的KOL了...我可是一名严谨的软件工程师啊,skr~~

冯文龙

一个不怎么专业的享米所属前端开发

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 曲水流觞TechRill 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
nfc近场通信
NFC简介: Near Field Communication 近场通信,是一种数据传输技术。 与wifi、蓝牙、红外线等数据传输技术的一个主要差异就是有效距离一般不能超过4cm。 NFC支持3种工作模式: 1.读卡器模式; 2.仿真卡模式; 3.点对点模式; 1.读卡器模式: 通过NFC设备(支持NFC的Android手机)从带有NFC芯片的标签、贴纸、报纸、明信片等媒介读取信息,或将数据写到这些媒介中。 2.仿真卡模式: 是将支持NFC的手机或其他电子设备当成借记卡、信用卡、公交卡
xiangzhihong
2018/02/01
4.1K0
nfc近场通信
Android开发笔记(一百六十一)NFC近场通信
NFC的全称是“Near Field Communication”,意思是近场通信、与邻近的区域通信。大众所熟知的NFC技术应用,主要是智能手机的刷卡支付功能。别看智能手机是近十年前才出现的,NFC的历史可比智能手机要悠久得多,它脱胎于上世纪的RFID无线射频识别技术。 所谓RFID是“Radio Frequency Identification”的缩写,它通过无线电信号便可识别特定目标并读写数据,而无需自身与该目标之间建立任何机械或者光学接触。像日常生活中的门禁卡、公交卡,乃至二代身份证,都是采用了RFID技术的卡片。若想读写这些RFID卡片,则需相应的读卡器,只要用户把卡片靠近,读卡器就会产生感应动作。 既然RFID已经广泛使用,那么何苦又要另外制定NFC标准呢?其实正是因为RFID用的地方太多了,导致随意性较大,反而不便于更好地管控。所以业界重新定义了NFC规范,试图在两个方面弥补RFID的固有缺憾: 1、RFID的信号传播距离较远,致使位于远处的设备也可能获取卡片信息,这对安全性较高的场合是不可接受的。而NFC的有效工作距离在十厘米之内,即可避免卡片信息被窃取的风险。 2、RFID的读写操作是单向的,也就是说,只有读卡器能读写卡片,卡片不能拿读卡器怎么样。现在NFC不再沿用“读卡器——卡片”的模式,取而代之的是只有NFC设备的概念,两个NFC设备允许互相读写,既可以由设备A读写设备B,也可以由设备B读写设备A。 改进之后的NFC技术既提高了安全性,又拓宽了应用场合,同时还兼容现有的大部分RFID卡片,因此在智能手机上运用NFC而非RFID也就不足为怪了。 带有NFC功能的手机,在实际生活中主要有三项应用:读卡、写卡、分享内容(两部手机之间传输数据)。为了能更迅速地了解NFC技术在Android中的开发流程,下面通过相对简单的读卡功能,来介绍如何进行手机App的NFC开发。 首先App工程要在AndroidManifest.xml中声明NFC的操作权限,下面是配置声明的例子:
aqi00
2019/01/18
2.9K0
nfc开发
    很多Android设备已经支持NFC(近距离无线通讯技术)了。本文就以实例的方式,为大家介绍如何在Android系统中进行NFC开发。 Android NFC开发环境        使用硬件:Google Nexus S,北京大学学生卡。(ps:笔者本想使用公交一卡通进行测试,发现手机不能正确识别)        手机操作系统:Android ICS 4.04。        开发时,笔者从Google Play Store上下载了NFC TagInfo软件进行对比学习。所以我们可以使用任意一
xiangzhihong
2018/01/29
3.8K0
nfc开发
Android NFC 技术解析,附 Demo 源码
近期由于项目需求,对 Android NFC 技术进行了一定的了解和深入,整合了一些网络、书籍资料,此文章仅作为自己的学习笔记。 NFC 是 Near Field Communication 缩写,即近距离无线通讯技术。可以在移动设备、消费类电子产品、PC 和智能控件工具间进行近距离无线通信。简单一点说,nfc 功能是什么?nfc 功能有什么用?其实** NFC** 提供了一种简单、触控式的解决方案,可以让消费者简单直观地交换信息、访问内容与服务。NFC 技术允许电子设备之间进行非接触式点对点数据传输,在十
非著名程序员
2018/02/02
3.2K0
Android NFC 技术解析,附 Demo 源码
中信证券李伟:移动支付正当时
移动互联网的扑面而来搅动了第三方支付的一江春水,移动支付在传统厂商左顾右盼的踌躇间成为新产业经济的关键词。是方兴未艾却挑战重重的二维码支付一枝独秀,还是踌躇多年的近场支付即将迎来破题的“春天”?又或是多元支付方式的“百花齐放”?第三方支付企业该何去何从? 10月14日晚,在腾讯互联网与社会研究院、Techweb联合主办的第5期互联网前沿沙龙上,腾讯财付通高级商务经理李东、中信证券高级分析师李伟、搜狐支付总监王玥、易宝支付在线业务部总监姚建东共同探讨移动支付的未来。 移动支付正当时 李伟 中信证
腾讯研究院
2018/03/13
1.7K0
中信证券李伟:移动支付正当时
浅谈NFC、RFID、红外、蓝牙的区别
很多朋友对NFC和RFID这两个词感到陌生,但是手机经常会出现支持NFC支付,又没太在意,NFC与RFID其实是手机支付的种方式(手机支付也被称作移动支付,是一种允许移动用户使用其移动终端对所消费的商品或服务进行账务支付的服务方式)。
Jean
2019/01/23
4.8K0
大话Apple Pay(苹果支付)安全
作者 Rabbit_Run 9月10日凌晨,苹果发布了最新iPhone和其首款可穿戴设备Apple Watch。但很多分析师却认为苹果新的移动支付服务Apple Pay才是真正的“游戏改变者”。Apple Pay能够使用指纹识别技术Touch ID安全进入。这项服务能够让用户在苹果设备中储存其信用卡账号,并通过点击手机或者智能手表完成支付。 ‍‍‍‍‍‍苹果是否真的让黑客江郎才尽了?苹果公司正在押宝。最近苹果公司推出了一项新型的安全支付方式-Apple Pay,引发了零售业和科技行业的热议。如果苹果能够正确
FB客服
2018/02/05
1.6K0
大话Apple Pay(苹果支付)安全
玩转OpenHarmony智能家居:如何实现开发版“碰一碰”设备控制
“碰一碰”设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称“OpenHarmony”)标准系统设备和全场景设备连接起来,解决了应用与设备之间接续慢、传输难的问题,实现一碰拉起应用,为用户带来无缝切换的流畅体验。
小帅聊鸿蒙
2025/04/26
1490
玩转OpenHarmony智能家居:如何实现开发版“碰一碰”设备控制
造一片智能互联的"黑土地",深开鸿如何重构OS棋局?
不知不觉间,许多全新的支付方式正细润无声地在我们的日常生活中普及开来,从二维码识别、指纹识别到人脸识别,再到冬奥会期间广受海外运动员好评的数字人民币。据测算,赛期内,数字人民币的试点覆盖了冬奥全场景40余万个,交易金额达到了96亿元。 另一个直观的感知是收银员手里的POS机集成了越来越多的支付方式,让用户有了丰富多样的支付体验。在固有印象中,金融一向是变化缓慢、流程繁杂的行业。相比海外单一的支付方式,国内在智能支付体验上一骑绝尘的原因,不仅源于政策导向的顶层设计,更来自于智能物联网厂商的不断尝试。 一台PO
云头条
2022/04/12
4640
造一片智能互联的"黑土地",深开鸿如何重构OS棋局?
sTEE,正成为Visa挑战Apple Pay的关键技术
MagicCube成立于2014年,总部位于加州旧金山湾区,MagicCube的sTEE技术已经被EMVCo(EMVCo是负责监管全球芯片支付卡和接受设备基础设施的联盟)认证为目前世界上第一个,也是唯一一个基于软件的“可信执行环境”(TEE / Trusted Execution Environment)。
安智客
2021/03/19
1.4K0
sTEE,正成为Visa挑战Apple Pay的关键技术
HarmonyOS学习路之开发篇—网络与连接(NFC开发 二)
设备可以模拟卡片,替代卡片完成对应操作,如模拟门禁卡、公交卡等。应用或者其他模块可以通过接口完成以下功能:
爱吃土豆丝的打工人
2023/10/15
3960
一文读懂H5,APP,WAP,公众号支付等多种支付方式的区别
从事支付行业开发多年,做过很多不同的场景。发现各种支付方式多样化,还有各种不同的叫法,很多人都是一知半解,容易混淆一些概念。这篇文章希望根据自己的理解,尽量的把几种支付方式说清楚。
用户7634691
2020/08/10
8K0
不同支付方式也能调控大脑活动?
信息技术的创新也改变了我们日常的支付方式,那么不同的支付方式会如何调控我们的大脑活动呢?近日,来自意大利的研究团队在Frontiers in Neuroscience杂志发表题目为《Cash, cardor smartphone: the neural correlates of payment methods》的研究论文,研究者采用fMRI研究了不同支付方式的神经机制。研究发现,与被试观看其他支付方式(银行卡或智能手机)的视频相比,被试观看现金支付的视频时,顶叶皮层(BA40)和右脑岛(INS)区域的激活程度显著增加;只有在现金支付的情况下,被试观看支付150欧元时的右侧BA40脑区激活程度显著强于被试观看支付50欧元和10欧元时的激活程度,而观看支付150欧元时的右侧INS和后扣带回皮的激活程度比观看10欧元时的显著增强。这些结果说明,现金对于我们人来说具有某种特殊的意义,似乎会涉及人的某种情感的参与(因为INS脑区在现金支付时激活度更强)。
悦影科技
2021/01/25
8230
不同支付方式也能调控大脑活动?
Apple Pay:重新定义移动支付?
摘自:福布斯中文网(http://www.forbeschina.com) 苹果CEO库克称,支付时间到了,苹果的目标是要取代你的钱包。苹果新公布的线下移动支付系统命名为 Apple Pay。 在发布会上,苹果公布了 Apple Pay 的使用场景视频,它主要通过内置在 iPhone 6 和 iPhone 6+ 的 NFC 芯片和 TouchID 技术,来实现便捷的移动支付。Apple Pay 整合了 Passbook,用户可以使用其苹果账号已经绑定的信用卡,也可以通过拍照增加新的信用卡。在商店,将 iPh
大数据文摘
2018/05/23
1.5K0
用户体验至上 三星Pay与苹果Pay谁更胜一筹?
文\孟永辉 如今,移动支付市场早已过百家争鸣时代,深耕细作成为当下移动支付市场的主旋律,阿里和腾讯便是这主旋律的代表。虽然两大巨鳄占据移动支付市场大部分份额,但终端市场的支付竞争依然存在。苹果与腾讯就
孟永辉
2018/05/11
1K4
Android开发 - NFC基础
本文档介绍了在Android上的基本的NFC任务。它说明了如何发送和接收的NDEF消息(NDEF messages)的形式的表单里包含的NFC数据(NFC data),并介绍Android框架里支持这些功能的API。对于更高级的主题,包括与非NDEF数据的讨论,请参阅高级NFC。
张云飞Vir
2020/03/16
2.3K0
Android训练课程(Android Training) - NFC基础
本文档介绍了在Android上的基本的NFC任务。它说明了如何发送和接收的NDEF消息(NDEF messages)的形式的表单里包含的NFC数据(NFC data),并介绍Android框架里支持这些功能的API。对于更高级的主题,包括与非NDEF数据的讨论,请参阅高级NFC。
张云飞Vir
2020/03/13
1K0
移动支付&&搜索引擎
Part.1 移动支付那些事 大家都知道,二维码的普及极大的方便了大家的生活,甚至说是改变了人们的支付习惯,一个事物的兴起,必然要引起一些值得人们关注的重要信息,比如说,移动支付的兴起所带来的支付安
石璞东
2020/04/21
2.2K0
移动支付&&搜索引擎
【支付系统设计从0到1】支付业务调用方式有哪些?为什么微信公众号支付采用JSAPI方式?
对于大多数做支付系统设计的同学来说,对于支付渠道提供的调用方式都不陌生,相信大家对这些支付渠道的调用方式也了如指掌。
金融民工小曾
2018/09/14
2.1K0
【支付系统设计从0到1】支付业务调用方式有哪些?为什么微信公众号支付采用JSAPI方式?
财付通李东:移动支付连接一切
       移动互联网的扑面而来搅动了第三方支付的一江春水,移动支付在传统厂商左顾右盼的踌躇间成为新产业经济的关键词。是方兴未艾却挑战重重的二维码支付一枝独秀,还是踌躇多年的近场支付即将迎来破题的“
腾讯研究院
2018/03/13
1.4K0
财付通李东:移动支付连接一切
相关推荐
nfc近场通信
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档