支付与银行业线上客户协议应用中的DocuSign集成方式选择——SDK和API

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 跨境支付公司和Docusign进行集成时,碰到问题时的解决方案。分别用SDK和API集成后的各自使用体验。

某跨境支付公司,专注于为中国跨境卖家提供低成本的跨境支付解决方案和定制金融服务。该公司业务遍及200多个国家和地区,是全球最大的跨境电商数字服务供应商之一。在全球设有多个分支机构,对于促进国际电子商务交易起着重要作用。他们为卖家提供跨境金融服务,同时需要在线上app上签署电子合同。

Docusign的嵌入式签署有着良好的客户体验,同时提供了极高的规范化和安全性要求,尤其是在客户数据处理和合规性方面。并且无论交易的数额庞大或普通,Docusign都提供了一致的信任和法律法规效力。这些都契合了该跨境支付公司的业务需求,故进行了引入使用。

随着跨境金融业务迅猛发展,他们引入了某外资商业银行进行合作,来提供更强大的后台服务,因他们在2022年就已经引入Docusign平台,并且使用反馈良好,故此次他们也推荐合作银行使用Docusign平台,用于此商业银行与他们的共同客户进行线上一站式签约。

在2022年时,这家跨境支付公司和Docusign的SDK进行集成时,有出现一个问题--JDK版本无法达到11,所以咨询了Support以后,得到以下答复:
image.png

经过公司内部讨论最终决定降级到Docusign版本。

根据业务需求,此商业银行公司最终也选择了Docusign的SDK集成方式,在测试过程中出现了一个NoSuchMethodError: org.glassfish.jersey.model.internal.CommonConfig.的错误。立刻咨询了Support,得到以下答复:

image.png

Support要求提供的资料繁琐并且来往信件时间花费很长,所以,我们直接开始排查这个问题。

首先排除客户下载的是否是Docusign完全依赖第三方的Shaded包。"Shaded" 在 Java 的上下文中通常指的是一种打包技术,用于创建包含项目所有依赖的 "uber-jar"(超级 jar 文件)。这种打包方式将项目的所有依赖项,包括所有必需的第三方库及其资源文件,全部打包到一个单独的 JAR 文件中。这样做的目的是为了避免类路径上的依赖冲突,简化部署流程,以及确保应用程序在运行时能够访问到其所有依赖。因为Shaded相对会比较大,所以第一时间确认了包的大小和版本。发现无错后,进一步去查看报错的报错栈。发现以下问题:
image.png

因为Docusign是基于jakarta的依赖,明明Shaded包里已经有,却没有引用到正确的版本,说明jar包冲突了,通过pom文件,依次发现两个包:

image.png
image.png

通过上图提示发现,jersey依赖的jakarta包与其公司的内部依赖jakarta包版本冲突,在考虑不影响其他项目,无法升级jakarta的前提下,给出两个建议:

1、降低Docusign的推荐版本

2、将SDK改成Rest API方式

为了方便客户全局考虑,我们针对这两种方式进行了对比,以帮助客户进行选择。

以下是SDK和REST API的使用体验比较:

1️⃣DocuSign SDK

定义: SDK是一组预打包的代码库和工具,旨在帮助开发者快速集成特定平台或服务。DocuSign SDK封装了对API的调用,提供了更简单的编程接口。优点:易用性: SDK通常包括示例代码、文档和其他资源,使得开发者更容易开始使用。快速开发: 由于SDK处理了很多底层细节,因此可以加速开发过程。更少的错误: 使用经过良好测试的SDK可以减少集成中的错误。缺点:灵活性有限: SDK可能不支持API的所有功能,限制了定制化的可能性。依赖性: 依赖特定的SDK可能会导致与特定语言或平台的强绑定。更新滞后: SDK的更新可能滞后于API的最新变化。

2️⃣DocuSign Rest API

定义: 建立不同软件应用程序之间的通信。DocuSign的Rest API允许直接与其服务进行交互,提供了更多的控制和灵活性。优点:灵活性和控制: 直接使用API可以访问所有的功能,允许更细致和定制化的集成。与技术更新同步: API通常会及时更新,反映出服务的最新变化。广泛的兼容性: API可以用于多种编程语言和平台。缺点:更复杂: 直接使用API可能需要更深入的技术知识和理解。开发时间更长: 需要手动处理更多细节,可能导致开发时间延长。错误风险更高: 直接与API交互增加了引入错误的可能性。

总之,选择SDK还是Rest API取决于你的具体需求、技术栈和资源。如果你需要快速开发和简化的集成流程,SDK可能是更好的选择。如果你需要更多的定制化和控制,直接使用API可能更合适。

需要特别强调的是:新版本(如4.5)通常包含在旧版本(如3.1)中不存在的附加功能、改进和错误修复。所以一旦以后出现错误或者是附加功能,都可能会被要求升级SDK来解决问题。另外DocuSign Support对于旧版本不提供技术支持。

目录
相关文章
|
4天前
|
机器学习/深度学习 敏捷开发 人工智能
深入探究持续集成在软件测试中的应用
【4月更文挑战第23天】 随着敏捷开发和DevOps文化的普及,持续集成(CI)已成为软件开发生命周期中不可或缺的一环。本文旨在剖析持续集成如何革新软件测试流程,提升测试效率及质量。文中不仅探讨了CI的基本原理与架构,还细致地分析了其对测试自动化、快速反馈以及质量控制的显著影响。同时,通过实际案例分析,揭示了实施CI的最佳实践及其面临的挑战。最终,文章提出了未来持续集成在测试领域可能的发展方向,为软件测试专业人士提供了前瞻性的参考。
|
4天前
|
测试技术 持续交付 开发工具
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
《Git 简易速速上手小册》第6章:Git 在持续集成/持续部署(CI/CD)中的应用(2024 最新版)
43 2
|
4天前
|
JSON API 数据处理
【Swift开发专栏】Swift中的RESTful API集成实战
【4月更文挑战第30天】本文探讨了在Swift中集成RESTful API的方法,涉及RESTful API的基础概念,如HTTP方法和设计原则,以及Swift的网络请求技术,如`URLSession`、`Alamofire`和`SwiftyJSON`。此外,还强调了数据处理、错误管理和异步操作的重要性。通过合理利用这些工具和策略,开发者能实现高效、稳定的API集成,提升应用性能和用户体验。
|
4天前
|
XML JSON API
电商数据集成:利用API接口实现商品详情自动化获取
在电子商务的快速发展中,数据集成成为提升业务效率和增强市场竞争力的关键。API(应用程序编程接口)作为数据集成的核心工具,允许商家自动化获取商品详情,从而实现高效的商品管理和数据分析。本文将探讨如何利用API接口自动化获取商品详情,并分析其对电商业务的影响。
|
4天前
|
机器学习/深度学习 算法 前端开发
【Python机器学习专栏】集成学习算法的原理与应用
【4月更文挑战第30天】集成学习通过组合多个基学习器提升预测准确性,广泛应用于分类、回归等问题。主要步骤包括生成基学习器、训练和结合预测结果。算法类型有Bagging(如随机森林)、Boosting(如AdaBoost)和Stacking。Python中可使用scikit-learn实现,如示例代码展示的随机森林分类。集成学习能降低模型方差,缓解过拟合,提高预测性能。
|
4天前
|
敏捷开发 机器学习/深度学习 Java
Java中的异常处理机制深入理解与实践:持续集成在软件测试中的应用探索自动化测试在敏捷开发中的关键作用
【4月更文挑战第29天】在Java编程中,异常处理是一个重要的概念。它允许开发者在程序执行过程中遇到错误或异常情况时,能够捕获并处理这些异常,从而保证程序的稳定运行。本文将详细介绍Java中的异常处理机制,包括异常的分类、异常的处理方式以及自定义异常等内容。 【4月更文挑战第29天】 随着敏捷开发和DevOps文化的兴起,持续集成(CI)已成为现代软件开发周期中不可或缺的一环。本文将探讨持续集成在软件测试领域内的关键作用、实施策略以及面临的挑战。通过对自动化构建、测试用例管理、及时反馈等核心要素的详细分析,揭示持续集成如何提高软件质量和加速交付过程。 【4月更文挑战第29天】 在当今快速发
|
4天前
|
敏捷开发 测试技术 持续交付
深入探究持续集成在软件测试中的应用与优化
【4月更文挑战第28天】随着敏捷开发模式的普及,持续集成(Continuous Integration, CI)已成为软件开发工作流中不可或缺的一环。本文将深入探讨CI在软件测试领域的关键作用,分析其如何提升测试效率和质量,并指出实践中常见的挑战及解决策略。通过对自动化测试流程、测试驱动开发(TDD)以及持续部署(CD)等关键技术的综合运用,揭示了构建高效、可靠软件系统的方法论。
|
4天前
|
敏捷开发 Devops 测试技术
深入探究持续集成在软件测试中的应用与优化
【4月更文挑战第28天】随着敏捷开发和DevOps文化的兴起,持续集成(CI)已经成为现代软件开发不可或缺的一环。本文将探讨持续集成在软件测试领域的关键作用,分析其如何提高测试效率、确保产品质量,并指出实施过程中可能遇到的挑战及相应的解决策略。通过案例研究和最佳实践的分享,旨在为读者提供一套系统的持续集成优化方案,以支持更高效、更可靠的软件发布流程。
|
4天前
|
敏捷开发 设计模式 测试技术
探索自动化测试在持续集成中的应用与挑战
【4月更文挑战第17天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加速产品上市的关键。本文聚焦于自动化测试在持续集成环境中的有效运用,分析了实施过程中的挑战,并提出了优化策略。通过深入探讨自动化测试工具的选择、测试脚本的维护以及测试数据的管理等关键要素,文章旨在为软件开发团队提供实用的指导,帮助他们构建更加健壮和高效的自动化测试体系。
|
4天前
|
SQL 运维 DataWorks
Flink CDC在阿里云DataWorks数据集成应用实践
本文整理自阿里云 DataWorks 数据集成团队的高级技术专家 王明亚(云时)老师在 Flink Forward Asia 2023 中数据集成专场的分享。
546 2
Flink CDC在阿里云DataWorks数据集成应用实践