通过“集成为先”的方法为支付终端构建商务平台

2023-10-24 04:59

本文主要是介绍通过“集成为先”的方法为支付终端构建商务平台,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

\

本文要点

\\
  • 所有支付终端都带有一个操作系统(也叫做“应用控制器”),并可通过不同程度的可编程性和访问能力让用户访问终端硬件的核心功能。\\t
  • 提供给开发者的SDK倾向于尽可能面向底层,开发者通常需要自行管理集成、安全性和认证等事宜。\\t
  • Poynt团队采用了一种集成为先的方法向外部服务提供RESTful API。\\t
  • 这些API有助于简化集成与安全性,提供了更出色的开发者体验,使得开发者可以更容易地满足具体需求或实现与新型外设的集成。\
\\

今天的商业活动已经模糊了线上和线下的界线,可以通过任何可能的渠道开展。移动商务、语音商务、对话式商务……各种不同的商务方式组成了我们所说的全渠道商务。伴随着诸如物联网等创新技术的诞生,各种实体系统和流程相互之间的交互方式与传统的互联互通方式产生了巨大的差别。跨越物理和虚拟系统的技术和交互方式,客户的购物行为,以及构建全渠道体验的能力等技术革新不仅需要构建API,而且需要在此基础上采取截然不同的方法。商务平台所用的系统和组件在设计和构建过程中必须考虑到互联性、互操作性以及可扩展性,这样才能帮助开发者打造更新颖的购物体验。这正是我们所说的“集成为先”的方法。本文我们将介绍Poynt构建这种商务平台的方法。

\\

这一切该从何处着手?

\\

在开始详细介绍“集成为先”的方法前,先来看看支付终端的一些基本组件,以及这些组件所扮演的角色。传统的支付终端主要用于处理基于银行卡(信用卡/借记卡)的支付交易。
\这类系统通常包括:

\\
  • 读卡器 - 终端的核心组件,提供了所有银行卡(磁条卡、芯片卡、NFC卡)所需的全部物理和逻辑接口。\\t
  • 显示屏 - 向客户/商家展示数据和信息提示(如收费金额,或要求客户输入PIN码或支付类型)。\\t
  • 外部硬件接口 - 通过各种物理(RJ11/串口/USB)和网络接口(以太网/WiFi/蜂窝网络)提供输入/输出连接能力。这些外部接口是支付应用程序为商家获取支付授权,访问小票打印机或POS系统等外设的唯一方式。\\t
  • 打印机 - 大部分支付终端都会包含内置的小票打印机,用于打印交易小票。\\t
  • 密码键盘 - 用于安全地输入PIN码、金额和处理支付交易所需其他信息的数字键盘。\\t
  • 支付应用程序 - 让一切组件配合工作,借此让商家正常处理支付的软件。这种软件负责在读卡器、显示屏以及支付的处理方/受让方所需的其他接口之间进行协调。\

除了终端本身,大部分终端供应商还会提供其他服务/功能,例如:

\\
  • 终端/资产管理 - 借此可远程管理每个终端的维护、软件更新、技术支持等工作。\\t
  • 安全性管理 - 借此管理读卡器配置、加密密钥等内容。\

然而大部分终端都将其视作单独的组件,只向这些物理和逻辑组件提供了非常底层的访问(大部分情况下只提供设备驱动层面的访问)。虽然对开发者来说,这样的做法听起来极为灵活,可以让开发者按照需要的任何方式使用这些组件,但却会在集成、安全性、认证等方面造成挑战。

\\

集成方面的挑战

\\

所有支付终端都带有一个操作系统(也叫做“应用控制器”),并可通过不同程度的可编程性和访问能力让用户访问终端硬件的核心功能。通常,终端都会为应用程序开发者提供SDK,借此开发者可以构建自己的应用程序,开发好的程序需要首先提交并进行认证,随后才允许安装到商家使用的真正的支付终端上。

\\

每个应用程序可以提供一系列截然不同的功能,通过终端上的应用程序控制器接口供给商家使用。然而能帮助这些应用程序相互配合使用的框架或接口很少,甚至完全没有,这导致商家需要运行各种相互独立的应用程序。例如当我们在商店购物时,面对不同需求,商家必须使用不同的按键组合来调用不同的应用程序(例如礼品卡或信用卡,信用卡或借记卡等)。

\\

安全性方面的挑战

\\

针对这些平台构建的应用程序通常运行在安全的环境中,因此需要满足PCI委员会、银行卡网络以及收单银行的所有安全需求。

\\

然而尽管这些安全需求对保护敏感的客户支付卡信息来说是必不可少的,但实现起来需要付出一定的代价。

\\
  1. 额外的需求导致支付应用程序的开发程本激增\\t
  2. 需要更长时间的测试和认证过程,并且\\t
  3. 部署时间进一步延后导致新功能的效益大幅降低,而不灵活的软件管理也会对软件开发周期产生不利影响\

认证方面的挑战

\\

正如上文所述,每个支付终端必须获得不同监管机构与金融组织的各种严格认证,随后才能部署到商家店铺内处理交易。这些认证包括俗称的L1认证(接触式和非接触式,硬件和通信层认证)、L2认证(接触式EMVCo认证,以及不同支付网络的非接触式认证),同样重要的还有运行了支付应用程序的终端需要集成到的每个收单银行/处理银行所要求的认证。这些认证过程需要通过额外的测试工具(相当昂贵)运行并评估支付网络所定义的所有测试案例,随后才能提交并等待必要的批准。

\\

构建平台

\\

面对这些挑战,考虑到我们的目标是促进更简单的集成和集成式体验,我们的方法首先会将硬件和软件组件拆分为多个抽象层,并根据集成方面的需求将相关功能以API的形式暴露。

\\

这一过程中我们建立了一些核心的基本原则:

\\
  • 终端的每个组件都有API(API为先的方法) - 从渲染自定义的UI消息并显示在屏幕上,到通过处理银行处理交易,一切都通过API的方式进行。\\t
  • 数据和API可扩展到终端之外 – 可以通过简单的RESTful外部接口供任何需要的系统或应用程序使用。\\t
  • 应用内部,以及应用与外部组件的互操作性是必备条件。\\t
  • 应用之间不进行一对一的自定义集成。\\t
  • 与生俱来的安全性 – 安全性不再仅仅是可选项。\\t
  • 简化集成 – 无需自定义工具,开发者可以使用任何主流的现代化开发和排错工具。\

按照这些原则,我们定义了下列核心服务来抽象必要的功能:

\\

(点击放大图像)

\\

23b5dd93eb6ba53e1357de4c9bb20cda.jpg

\\
  • 读卡器服务(Card Reader Service) - 我们并未直接提供底层的读卡器访问接口,因为这会让任何人均可访问敏感的银行卡数据,相反我们会为需要的应用程序提供处理银行卡数据的功能API。例如执行卡片交易进行支付,读取非银行卡中的会员信息等。读卡器服务内的所有数据都被加密,因此可彻底杜绝将任何敏感数据暴露给应用程序,进而需要进行PCI合规认证的情况。\\t
  • 商务服务(Commerce Service) - 为各种与商务有关的功能提供支持,例如订单管理、交易管理、客户管理、分类/产品等,并且通过这种方法可以用一致的方式呈现与商务有关的各类数据源。这些商务服务也成为终端中运行的所有应用程序相互实现互操作,实现不同商务活动的核心集成点。\\t
  • 支付体验(Payment Experience) - 为所有支付方法提供标准化的体验,同时省略了为每个集成分别进行支付验证所造成的不必要的负担。\\t
  • 配件管理服务(Accessory Management Service) - 提供了包含不同服务的目录,借此处理连接到终端的各种外部附件(例如打印机、磅秤、现金抽屉、登记簿、POS系统等)的连接,并通过更简单的方法与其交互。我们为不同类型的配件定义了不同的API合约。例如现金抽屉配件的接口只提供了简单的\"open()\"和\"isOpen()\"方法,并不提供向所连接的抽屉发送打开指令的底层USB命令。\\t
  • 能力管理服务(Capability Management Service) - 为平台安装的不同能力提供了一个统一的目录,借此可直接连接并使用不同能力。涉及到的能力包括交易处理、小票打印、会员忠诚计划、折扣、客户管理等。在跨越终端上运行的各种应用程序提供互操作性方面,能力管理功能扮演了重要的角色。\\t
  • 外部连接器服务(External Connector Service) - 通过这样的一个接口将终端可用的大部分接口暴露给通过USB、蓝牙或网络连接的外部应用程序。\\t
  • 云服务(Cloud Service) - 通过必要的接口将终端上运行的服务扩展至终端范围之外。这些服务可用于访问同样的功能,但更重要的是,可用于通过云平台访问同样的商务数据,借此即可轻松访问云端运行的应用。云服务还为读卡器、安全密钥管理等组件提供了必要的配置管理功能。\

为了从实现以及集成的角度展示这些组件的配合方式,我们将以Poynt智能终端上进行的一次端到端支付交易流程为例进行介绍。

\\

在终端上,每次交易始于商户经营业务所用的应用程序。下列流程示意图展示了Poynt智能终端上处理交易时的所有步骤和阶段。红色高亮显示的内容代表相应服务提供的功能API。

\\

(点击放大图像)

\\

c91e79194bd4d99748cb8670f14b0ce7.jpg

\\

总结

\\

虽然整个过程看似十分冗长,但尤其需要注意下列几个重点:

\\
  • 功能API(Functional API) - 通过更高层的抽象大幅降低了集成的工作量。\\t
  • 服务发现(Service Discovery) - 发现终端上可用服务的能力使得开发者可以灵活查找最能满足应用程序需求的服务。无论是用于发送邮件的服务,或处理交易的服务,甚至渲染一个界面向顾客收集信息的服务,以编程的方式发现并连接服务的能力不仅为应用开发者带来了巨大价值,而且大幅提高了整个平台的可扩展性。\\t
  • 资源模型(Resource model) - 取决于组件/服务的具体类型,虽然每个组件的API在协议格式上可能有所不同,但跨越不同组件/服务提供并维持一致的数据模型对互操作性的实现起到了极为重要的作用。\\t
    • 这不仅有助于无需太多转换即可跨越不同API传输数据,而且有助于将数据模型扩展为RESTful API供云中运行的应用程序使用。\\t
    \\t
  • 通过标准化API接口实现互操作性 - 虽然服务发现能力可以帮助我们在需要时方便地找到可用服务,但如果服务接口没有实现标准化,并且并非由平台预先定义的,那么在集成方面所起到的价值将非常有限。为整个平台所支持的全部能力和配件服务定义并提供标准化接口框架是让整个平台获得更高扩展能力的关键步骤。我们不可能预测出未来的所有需求和可能需要的功能与配件,因此这也是一个持续发展的步骤,借此可以帮助开发者通过形成一个生态体系自行定义自己需要的内容。\

这种以API为先的方法对任何公司或产品来说都有一定的必要性,借此可以更好地专注于系统和(内部与外部的)应用程序相互集成和互操作的方法,进而推动整个平台获得更大的成功。

\\

关于本文作者

\\

d54ea5a8051b22ff3b01f99b930ad6c7.jpgPraveen Alavilli 是Poynt的资深创始工程师,一举促成了Poynt智能终端及其开放式商务平台的技术基础,并通过努力让该平台面向支付技术的未来做好了准备。在加入Poynt之前,Alavilli曾在PayPal、eBay、Amazon和AOL等支付、身份、身份验证和安全领域的不同公司担任架构师和技术主管职位。Alavilli长期拥护开放式标准和开放的开发者生态系统。

\\

阅读英文原文:An \"Integration-First\" Approach to Building a Commerce Platform for Payment Terminals

\\

这篇关于通过“集成为先”的方法为支付终端构建商务平台的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/272871

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo