支付与银行业线上客户协议应用中的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对于旧版本不提供技术支持。

目录
相关文章
|
1月前
|
缓存 JavaScript 算法
活用 Composition API 核心函数,打造卓越应用(下)
活用 Composition API 核心函数,打造卓越应用(下)
|
1月前
|
存储 JavaScript API
活用 Composition API 核心函数,打造卓越应用(上)
活用 Composition API 核心函数,打造卓越应用(上)
|
1月前
|
人工智能 关系型数据库 Serverless
Serverless 应用引擎常见问题之API生成的函数镜像改为自定义的镜像如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
39 3
|
5天前
|
人工智能 API 开发者
【AI大模型应用开发】0.2 智谱AI API接入详细步骤和简单应用
【AI大模型应用开发】0.2 智谱AI API接入详细步骤和简单应用
24 0
|
1月前
|
搜索推荐 数据挖掘 API
1688商品详情API在电商平台中的应用与实践
随着电子商务的迅猛发展,越来越多的商家选择利用API(应用程序编程接口)来提升其在线业务的效率和用户体验。特别是在商品信息展示方面,1688商品详情API作为连接商家和消费者的重要桥梁,扮演着至关重要的角色。本文将深入探讨1688商品详情API的功能、应用场景以及如何通过该API提高电商平台的商品信息展示质量。
|
1月前
|
机器学习/深度学习 自然语言处理 API
使用 Python 集成 ChatGPT API
使用 Python 集成 ChatGPT API
110 1
|
1月前
|
存储 监控 测试技术
为多渠道销售集成商品API接口
为多渠道销售集成商品API接口是一个涉及技术整合和数据管理的过程。以下是一些关键步骤,可以帮助您实现这个目标:
|
1月前
|
JSON API 数据格式
构建高效Python Web应用:Flask框架与RESTful API设计实践
【2月更文挑战第17天】在现代Web开发中,轻量级框架与RESTful API设计成为了提升应用性能和可维护性的关键。本文将深入探讨如何使用Python的Flask框架来构建高效的Web服务,并通过具体实例分析RESTful API的设计原则及其实现过程。我们将从基本的应用架构出发,逐步介绍如何利用Flask的灵活性进行模块化开发,并结合请求处理、数据验证以及安全性考虑,打造出一个既符合标准又易于扩展的Web应用。
660 4
|
2月前
|
监控 供应链 API
为多渠道销售集成商品API接口的正式步骤指南
摘要: 在当今的零售环境中,企业通过多渠道销售策略来扩大市场覆盖范围并提高客户接触率。商品API接口的集成是实现这一目标的关键技术手段之一。本文旨在提供一套系统的步骤指南,帮助企业高效地为其多渠道销售体系集成商品API接口。
|
2月前
|
弹性计算 前端开发 Java
通义千问API:让大模型写代码和跑代码
基于前面三章的铺垫,本章我们将展示大模型Agent的强大能力。我们不仅要实现让大模型同时使用多种查询工具,还要实现让大模型能查询天气情况,最后让大模型自己写代码来查询天气情况。
59735 448
通义千问API:让大模型写代码和跑代码

热门文章

最新文章