当前位置: 首页 > article >正文

一篇文章搞懂Android 刷卡器对接:RS232 DB9串口通讯,通讯设置,刷卡器API介绍;代码示例;MDB协议;

目录

在这里插入图片描述


前言

在一些国家,还没有普及扫码支付的时候,消费者会纸币、硬币或者刷卡进行支付,这里我们讲解一下刷卡支付。

在市面上,有哪家刷卡器公司可以说的上是开通了很多国家的支付银行,那么Nayax和Pax可以说的上是名列前茅,他们适配了很多国家,对接其他国家的银行,让我们只需要接入了他们的刷卡器,就可以实现在全国各地实现刷卡支付,而不需要我们去对接这些国家的银行,真的是非常方便。

当然,他们也并不是全部国家都适配到了,也会出现有一些国家没有的情况,这个时候,你也可以选择当地国家开发的刷卡器。

他们的接入方式大同小异,无非就几种:串口、局域网以及蓝牙等。这篇文章,我们会先讲讲串口的方式。串口是通过连接线材的方式,使通讯更加的稳定可靠。


一、需求场景:刷卡支付(开发前对接,需要对方提供信息)

大致的流程:

  1. 首先,需要让对方提供API文档
  2. 我们需要知道他们的通讯设置:波特率、停止位、数据位以及奇偶校验等等。
  3. 这些信息拿到以后,我们就可以将硬件连接好,进行测试。
  4. 注意,这个时候,还是先不要写代码,先使用串口工具进行测试!先使用串口工具!先使用串口工具!先使用串口工具!因为出现问题,对方的工程师会让你先用串口工具测试,因为他不知道的技术水平怎么样,所以串口工具是最有说服力的。能节省非常的沟通成本。
  5. 要将硬件连接到电脑,我们需要买一个usb转Rs232的线,因为电脑用的usb,硬件设备用的有可能是db9,所以要买一条这样的线进行转接。

下面我们来看一个具体的案例:自动售货机领域的一种重要通信标准,MDB。


1.1 通讯设置

这个通讯设置,也是需要对方提供给到我们。
在这里插入图片描述我们打开串口工具,将其设置进去,然后打开串口即可测试。串口工具大家可以上网搜索下载,非常多。
在这里插入图片描述
串口号,当你插入到电脑的时候就会自动识别出来,如果没有识别出来,那么有可能是没有驱动,可以到系统的计算机管理系统里面看看缺少什么驱动,下载对应的即可。


1.2 刷卡器的API

一般,刷卡器我们会称之为下位机,而Androdi我们会称之为上位机。

下位机的API一般有:

  1. 初始化:刷卡器的功能会很多,有的国家,支付流程不一样,所以我们需要使用不同的初始化方式,比如有的国家,喜欢先插卡后选择商品,而有的国家,喜欢先选择商品后插卡;再有比如设置支持最大最小金额是多少,等等,有很多。
  2. 发起交易:一般需要携带金额,商品编号;商品编号告知出货的具体是什么商品。
  3. 取消交易:取消本次交易。
  4. 接收交易结果:这个是下位机自动发送上来,不需要我们去轮询监听。
  5. 上传出货结果:商品的出货结果,需要发送给下位机。下位机会进行记录,上传到他们的服务器,这样才有数据可察。

1.3 发送数据\接收数据

在这里插入图片描述

数据格式会分为两种:

  1. ASCII就是我们常用,比如:1302、或者SDWR,也就是字符串。
  2. HEX:就是十六进制。

比如ASCII:ABC
在这里插入图片描述
比如Hex:41 42 43

在这里插入图片描述
空格是没有必要的,发送的时候也会取消。


二、刷卡器Api介绍

下面,我们介绍一种全球通用协议,MDB协议,又名ICP(Internal Communication Protocol)协议,是自动售货机领域的一种重要通信标准。很多国家的刷卡器都会按照这一标准进行实现,类似于我们的Http一样,只要我们按照这个协议期发送,那么就是http请求。

下面我们会根据MDB协议的无现金章节来进行讲解,无现金也就是无需要现金,刷卡器,就是无现金的一种。

2.1 初始化流程

这个是非常重要,要先完成初始化流程,才能进行支付流程,初始化流程其实就是用于设置基础信息,比如启动什么功能,支持的最大最小金额,然后开始使用:

  1. 发送重置指令。
  2. 发送设置指令:主要用于获取刷卡器的信息,比如他的级别是多少,使用的是什么支付模式,最大响应时间多少等等。
  3. 发送支付最大最小价格。
  4. 设备使能(使能就是可以进行使用)。

这些并不是固定,有时候会根据不同的刷卡器参加,进行配置。

(1)发送重置指令

(2)发送设置指令


http://www.kler.cn/news/334373.html

相关文章:

  • 掌握嵌套子查询:复杂 SQL 中 * 列的准确表列关系
  • C/C++/EasyX——入门图形编程(3)
  • javascript:void(0)
  • 【开源免费】基于SpringBoot+Vue.JS美发门店管理系统(JAVA毕业设计)
  • Hadoop-HDFS-core-site.xml,hdfs-site.xml,yarn-site.xml,krb5.conf 都是做什么的?
  • 基金好书入门阅读笔记《基金作战笔记:从投基新手到配置高手的进阶之路》1
  • 面试-2024年9月13号
  • Kafka:架构与核心机制
  • 【BUG】P-tuningv2微调ChatGLM2-6B时所踩的坑
  • 图解C#高级教程(三):泛型
  • 存储电话号码的数据类型,用 int 还是用 string?
  • 【目标检测】桥梁表面缺陷检测数据集6710张7类缺陷VOC+YOLO格式
  • R包的安装、加载以及如何查看帮助文档
  • Pikachu- Over Permission-垂直越权
  • 【python爬虫可以获取到谷歌影像吗?】如何有效下载谷歌影像?
  • 【Qt】Qt学习笔记(一):Qt界面初识
  • Django学习笔记十:全面测试
  • MySQL【知识改变命运】02
  • 2025舜宇招聘【内推码】
  • 【Mysql】数据库基本操作-----DML