欢迎光临POS机办理_POS机申请-拉卡拉银联POS机办理安装中心官网!
专业pos机办理平台正规一清机 个人商户均可申请
全国咨询热线:15202915905
联系我们

POS机办理中心

地址: 陕西西安

手机:

电话:15202915905

邮箱:

当前位置:首页 > 城市分站 > 广东 > 江门

江门安卓智能Pos开发简单入门总结_JabamiLight的博客

时间:2023-02-27 18:44:32 来源:https://sxcjq.cn 点击:

本文由无卡支付官网人工更新,现在的pos机更新太快,pos机也是免费更新的,如果你的pos机扣费不正常、费率上调了,均可以来我司免费办一台不涨价的pos机,以下内容就是关于“安卓智能Pos开发简单入门总结_JabamiLight的博客”的信息,我司在线客服:15202915905。

安卓智能Pos开发简单入门总结_JabamiLight的博客  第1张

部分还需要支持3D结构光摄像头的设备,基本只需要适配一个安卓版本的系统,支付流程需要适配不同银行的支付平台和相关规范(如加密算法、通讯方式等等),主要与底层库交互)由各个厂商按照自身硬件需求各自完成,关于密钥其实有着银行卡网络的三级密钥体系,母POS通过计算得到最终的主密钥明文,那么快速调试余额查询我们要做什么呢,余额查询这个交易需要哪些界面呢。

从事安卓智能POS开发已经三年了,从手机转过去的时候,经历了一段非常不适应的时间,这种不适应并不是代码层面,而是对于支付行业的各种规范,报文的不熟悉导致开发遇到困难。这篇文章可以带一些对于有手机开发经验,但是没有太多智能POS开发经验的同学入门。

一、智能POS开发和手机开发的区别?

:基本上是市面的手机,我们只需要满足大众的使用功能,基本上都是浏览和触控操作为主

:基本移除了打电话的功能,除了手机的基本功能外,还包含RF卡读卡器,IC卡读卡器,打印机,如果需要支持人脸支付,部分还需要支持3D结构光摄像头的设备。

:有手机开发经验的就不多说了,主要是各个安卓版本和各个厂商的系统适配。

:基本只需要适配一个安卓版本的系统,兼容一套硬件方案。软件对于UI的要求基本不高,支付流程需要适配不同银行的支付平台和相关规范(如加密算法、通讯方式等等)。一般一个银行不会只采购一个厂商,所以目前市面上的方案大都是收单应用由某一个厂商做一套,然后底层服务SDK(也是一个应用,主要与底层库交互)由各个厂商按照自身硬件需求各自完成,这样就保证在各个不同厂商的POS上都能实现同样的效果。

作为POS机的应用,最基本的功能肯定对应各种支付场景,但是我们不可能全部用文明来进行交互,同时我们也需要知道资金的去向,最终是到哪个商户的卡里了。那么我们一般拿到收单程序,需要配置的几个关键参数就明了了。

1、商户号 商户在银行开通的商户代码

2、终端号 同一个商户可以由不同的终端号用于不同设备

3、主密钥 作为与银行平台共享的密钥,作为其他密钥的分发保护密钥

一般有这几个参数,就可以对应开发完成银行卡的支付了。关于密钥其实有着银行卡网络的三级密钥体系,这里我不展开说了,快速上手可以后续再了解。

主密钥作为其他密钥的分发保护密钥,自然不会以明文的手段下发到POS里,当然测试环境一般可以用手输明文,这样便于调试。生产环境一般有几种下发方式。

1、IC卡下发主密钥

2、母POS下发主密钥

3、在线下发主密钥

我这里简单介绍一下母POS下发方式,平台申请完主密钥之后,会有一个密钥信封,信封里保存着密钥的两个分量,一般两个分量都是32位的HEX字符串,然后我们将两个分量输入母POS,并制定好密钥索引后。母POS通过计算得到最终的主密钥明文,通过串口线下发的生产用的收单机器,这样收单机器就拿到了主密钥。

主密钥的主要作用就是分发工作密钥,工作密钥主要用三个

1、PIK PIN加密密钥

2、MAK MAC计算密钥

3、TDK 磁道加密密钥

工作密钥下发一般是通过签到交易下发的,每天都需要签到一次,保证工作密钥变化,这样保证报文传输的安全。

一个完整的收单其实就是各种支付流程,比如消费、退货,余额查询等。那么一般上面几步做完之后,我们首先要调试的自然应该是余额查询。余额查询包含了卡片的所有数据,一般余额查询调试成功,剩下的交易就很快速了。那么快速调试余额查询我们要做什么呢?

余额查询这个交易需要哪些界面呢?首先需要卡号,那肯定有一个读卡界面,需要输入密钥,有一个输密的界面,然后展示余额有一个结果界面。总的来说一个入口,和三个主要的主界面,基本就完善了流程,其实收单的很多交易都类似的,一个入口,几个主要界面,UI都不复杂。

银联的报文由于比较固定,比如商户号15位,终端号8位等,这样我们按照协议放在某个位置,就可以减少报文传输,而不用像JSON一样需要添加字段名等等。这样8583报文就诞生了,8583报文其实可以简单的理解位每个域按照一定规则拼接在一起,每个域其实可以理解就是JSON报文的每个字段,这样我们把数据准备好传输到平台,然后从平台接收报文解析后,拿到对应的值处理。这里我简单分析下余额查询比较关键的几个域和用到的密钥。

2域 卡号域;通过SDK服务去读取银行卡的卡号等信息

35域 2磁道数据域;通过SDK服务读取2磁道数据,如果有加密需求还需要使用TDK加密

52域 PIN;输入的密钥通过SDK服务去加密后返回收单服务,使用PIK

64域 MAC;将报文的所有数据域MAK通过一定的算法生成MAC消息认证码,防止报文被拦截篡改。

这些都准备好了之后,我们和平台进行交互,成功后返回余额并进行显示,那么我们就成功开发完成了一个流程,其他流程基本同理。

我们从手机转POS时,刚开始各种规范不熟悉的情况下,刚入手就直接上手开发的话,肯定不可能全部都去了解一遍,边开发边学习才是正确的。这篇文章并没有展开说细节,只总结了一个基本的流程,毕竟一个细节都可以讲很长的篇幅了,而且各个银行的规范都是由差别的,我们先保证基本开发流程的正确,然后对照银联规范以及对应银行的规范进行开发就行。



Tags: