一:EMVCo 简介

2017年7月15日,国际芯片卡及支付技术标准组织(EMVCo)在其官网正式面向全球发布《EMVCo用户出示二维码模式技术规范1.0版》,为二维码支付的全球推广与应用打造了一套各参与方权责明晰、交易风险合理分散、具有全球实施可行性的技术解决方案,弥补了全球统一二维码技术规范的空白。

二:新加坡EMVCo码格式解析

目前新加坡支付的二维码大部分采用EMVCo格式,如下面所列二维码:

可以通过支付宝或者二维码扫码工具获得其中的内容:

emvcoStr:

00020101021126560014A00000076200010109sg.lq.www02154000161000000000302015204581253037025802SG5911SG Merchant6009Singapore61060000006304854B

那么所谓EMVCo的数据格式是什么呢?

其实字符串使用的是TLV数据结构,即tag、length和value

如上面字符串所示,tag由两位组成,之后X位(N)代表value长度,后面N位代表value的值

新加坡地区的支付二维码,默认“00”开头,X为2,由此可以对该字符串进行解析,结果如下:

TAG:

Tag:00     Length:2     Value:01
Tag:01     Length:2     Value:11
Tag:52     Length:4     Value:5812
Tag:53     Length:3     Value:702
Tag:26     Length:56     Value:0014A00000076200010109sg.lq.www0215400016100000000030201
Tag:58     Length:2     Value:SG
Tag:59     Length:11     Value:SG Merchant
Tag:60     Length:9     Value:Singapore
Tag:61     Length:6     Value:000000
Tag:63     Length:4     Value:854B

subTag:

Tag:26     Length:56     Value:0014A00000076200010109sg.lq.www0215400016100000000030201
Tag:00     Length:14     Value:A0000007620001
Tag:01     Length:9     Value:sg.lq.www
Tag:02     Length:15     Value:400016100000000
Tag:03     Length:2     Value:01

其中subTag代表的是如果某段的value值也符合TLV格式,那么可以拆分为子tag。

三:含义解析

EMV® 发布的《QR Code Specification for Payment Systems (EMV QRCPS)》 文档分为

Consumer-Presented Mode 和 Merchant-Presented Mode

如果用户去新加坡地区扫商家端的码会用到“商户呈现模式”的EMV码

根据文档说明,由两位组成的码tag从00-99,value最大长度也为99,如截图所示。

其中每个tag有自己的含义,这类似于国内银联8583协议,具体含义如下截图(部分):

格式解析:ans - Alphanumeric Special 即数字或特殊符号  N - Numeric 数字

tag = “62”下的解析:

所以一个Merchant-Presented EMVCo二维码包含了支付所需商家、金额、币种和必要的附加信息

新加坡EMVCo支付二维码解析相关推荐

  1. Spring Boot电商项目57:订单模块六:【前台:生成支付二维码】接口;(支付url的拼凑;利用zxing生成二维码;二维码图片的存储;真实地址与可访问地址的转换;)

    说明: (1)本篇博客主要内容是:开发[前台:生成支付二维码]接口: (2)本篇博客需要注意的点有: ● 支付url的拼凑: ● 利用zxing生成二维码: ● 二维码图片的存储:真实地址与可访问地址 ...

  2. 关于微信支付 二维码扫码支付

    首先注册微信公众平台服务号:https://mp.weixin.qq.com 获得开发者id和秘钥(appid & appsecret) 随后注册微信支付商户平台:https://pay.we ...

  3. 支付宝支付 第九集:产品数据和支付二维码对接

    支付宝支付 第九集:产品数据和支付二维码对接 一.问题 javascript中单引号和双引号的区别是什么? vue中的:作用 v-bind指令 二.代码 目录结构 更新AlipayServiceImp ...

  4. 支付宝支付 第六集:生成支付二维码

    支付宝支付 第六集:生成支付二维码 一.资源 支付宝沙箱显示APP-ID错误:我的原因是支付宝网关地址写错了 支付宝沙箱环境报 invalid-app-id 错误原因: 无效的AppID参数 错误 支 ...

  5. python生成二维码、动态二维码 和 而二维码解析

    python生成二维码.动态二维码 和 而二维码解析(8-20190129) 文章目录: 一.二维码介绍 二. 就是为了好玩所以想搞一下二维码,"好玩",少年醒醒,不要骗自己啦,起 ...

  6. 二维码解析:使用 JavaScript 库reqrcode.js解析二维码

    上次使用QRCode.js可以来生成二维码,但是我没有找到有文档说明可以对存在的二维码进行扫描解析其中的内容. 幸亏查找到了可行的解决方案,而且很好使哦!就是reqrcode.js 地址:https: ...

  7. 图片加载 二维码 解析

    图片加载 二维码 解析 1. layout布局文件 (1)activity_category.xml <?xml version="1.0" encoding="u ...

  8. 支付二维码整合 - 三码合一支持支付宝、QQ、微信

    支付二维码整合 - 三码合一支持支付宝.QQ.微信 1. 前提:获取各个二维码的具体内容 在写代码前,我们需要先获取不同支付方式的二维码内容.很简单,只需要打开各个支付码,截图,然后随便找个可以扫码的 ...

  9. pc端生成支付宝支付二维码

    验签类RSA.php <?php namespace App\Library; class RSA{     /**      * RSA签名      * @param $data 待签名数据 ...

最新文章

  1. 我们参观机器人产业园的感想_工商联组织执常委赴醴陵华鑫电瓷电器产业园交流学习...
  2. Python学习之字符串
  3. 什么是万词霸屏?做万词霸屏有效果么?
  4. 百度定位SDK的使用示例
  5. 基于动态IP的Internet视频监控解决方案(作者:吴晓晖)
  6. ASP.NET Core Web API基于RESTFul APIs的集合结果过滤和分页
  7. linux内核字符设备文件的自动创建
  8. ubuntu 软件包降级
  9. java下载文件夹_java如何通过共享目录下载文件夹(有子文件夹)到本地目录?...
  10. db2 查看属性的数据类型 小数位 null约束
  11. 大佬学习python_各位大佬我想学习python,应该买那些书?
  12. Atitit 提升开发效率几大策略 目录 1. 提升效率三原则 2 1.1. 更少的工作 2 1.2. 优化配置减少等待 2 1.3. 提升一次性处理能力 2 2. 方法提升 3 2.1. 分类优
  13. html站点地图怎么做,网站地图(站点地图)详细介绍、以及如何制作详解
  14. 手把手带你玩转Spark机器学习-专栏介绍
  15. 在sheet1工作表中进行高级筛选,筛选出计算机或英语大于85分的,2017年职称计算机考试EXCEL操作题...
  16. word设置多级目录
  17. windows7装python哪个版本好_[合集] 弱弱的问下Windows10和7,装Python的哪个版本
  18. 9.28 正睿普及3
  19. 关于Java八种原始数据类型
  20. 雅克比(Jacobi)迭代法解线性方程组(Matlab程序)

热门文章

  1. 【毕业设计教程】单片机接入按键控制遥感 -嵌入式 物联网 stm32 c51
  2. 基于51单片机室内室外环境检测仪控制设计
  3. 【深度学习 理论】Logistic Regression
  4. Loadrunner Controller无法进入解决方式
  5. Sublime Text 3 安装 BracketHighlighter
  6. 事件对象的preventDefault()方法
  7. AutoCAD DxfCode组码值说明(二)
  8. 深入理解 Python 描述符
  9. ubuntu20 deb包安装安装中心显示无法支持
  10. 【微信小程序入门到精通】— window 导航栏配置