一种基于 Open API 方式的银企直连对接方法

作者:郑德鼎 约 8 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, Digital Transformation, SD, WM, 仓库管理, 开发, 数字化转型, 数据工程, 销售分销
一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

SAP传统的银企直连解决方案一般都是启用EPIC业务套件,然后在此基础上进行拓展配置和开发,最终实现企业与银行的业务往来。

在开放银行( Open Banking

)概念日益盛行的今天,越来越多的银行开始搭建自己的互联网开放平台,通过将产品和服务封装成接口,以OpenAPI的方式提供给企业调用,从而实现银企数据的无缝对接。

本文借助一个案例来同大家探讨, SA P 如 何 基于 OpenAPI 方式 实现与银行的接口对接。

**背景**

某企业外汇业务的记账和支付两个环节分属在企业SAP ERP 和银行财资系统中 ,用户需要在两套系统中分别操作才能完成业务闭环。

为了优化业务流程,减轻用户负担,实现记账和支付的自动化、一体化,该企业决定使用银企直连解决方案来实现信息化互通。

**解决方案**

由于客户没有购置和部署前置机的预算,传统的SAP

EPIC解决方案不能完全适配当前场景。银行方面另外提供了OpenAPI的对接方式,通过引入SDK工具包,在Java或C#平台下进行应用开发,进而实现数据交互。受限于开发语言,

SAP无法直接使用银行的工具包,需要借助第三方平台来实现数据中转 。

本案例是以SAP+PO方式实现的接口对接。首先使用Java语言本地化开发一个应用程序,用来调用银行的OpenAPI接口;然后将该应用程序封装到Web项目并部署到PO中间件上,发布成内部API接口;最后,SAP

ERP调用PO接口传递参数,经PO内部数据处理和转发,最终将结果发送到银行。

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

接口调用过程

**解决方案**

**

**

**解决方案**

**

**

**技术实现**

• JAVA应用程序开发

通过研

读银行的API开发手册,我们发现银行已经很贴心的将大部分功能都封装到了SDK工具包中,我们只需要将jar包引入,维护配置文件,然后给对应方法传参即可。

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

Java应用程序的开发与测试

• 创建Java Web项目

JAVA应用程序是需要开放给SAP使用的,这里我们创建一个Servlet项目,对应用进行封装,发布成HTTP接口。受篇幅限制, 此处省 略

创建Servlet项目的过程,感兴趣的朋友可以参考文章 [ 《如何使用Eclipse发布一个简单的Servlet项目》

](http://mp.weixin.qq.com/s?__biz=MzAxODU2ODc2OQ==&mid=2247485959&idx=1&sn=cf5e88d579b0f1a79bb7e99a434fbf03&chksm=9bd50929aca2803f93ebd5f933e917f3273a850251f16caf09ee83ea4b85cb3aa0025662fbc0&scene=21#wechat_redirect)

接口使用post方法,HTTP Header中传入银行所需的产品ID、服务ID、密钥等,HTTP

Body中传入json报文。doPost方法中获取请求参数,调用应用程序发送给银行。

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

Servlet接口类处理逻辑

• 将Java Web项目部署到PO中间件

SAP

NetWeaver本质上是一个以Java引擎驱动的Web平台,因此我们可以将本地的Servlet项目打包处理成SDA文件后部署到上面。文件的打包和部署方法可以参考文章

[ 《如何在SAP NetWeaver上进行Web服务功能扩展?》

](https://mp.weixin.qq.com/s?__biz=MzAxODU2ODc2OQ==&mid=2247485993&idx=1&sn=3fc0fedf225c6534941ae3b3858ead4f&chksm=9bd50907aca2801140ba42b7607b8e427dbdd978c3cb84699036da81cdbfb951b7a652a76fe7&scene=21#wechat_redirect)

,这里我们只展示部署后的效果。 部署成功后,我们可以按格式 http://ip:port/projectName/mappingURL

自己拼接好接口地址,供SAP调用。

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

检查项目的部署状态

• SAP中的功能开发

激活SAP的EPIC套件并完成必要的系统配置后,在EPIC_PROC界面上做增强开发,增加一个“外汇付款录入” 按钮;

然后开发外汇付款录入提交功能程序,包含录入界面、数据保存、数据提交等功能;最后将功能程序的界面绑定到处理按钮上。

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

_ | _ | _ | _ | _

---|---|---|---|---

SAP中的功能开发

至此,整个银企直连接口的开发工作就初步完成了。用户在SAP中处理完成付款建议的相关记账操作后,可以继续录入单据信息,然后提交给银行完成付款,最终实现业务流程的闭环。

在此基础上,我们还可以增加付款审批复核、邮件提醒、附件上传、付款状态查询、银行回单查询等多项功能,持续地优化提升用户体验。

**注意事项**

• Web服务器问题

本例中使用了SAP

NetWeaver作为SAP和银行的中转服务平台,其作用类似于前置机,是企业ERP和银行财资系统的沟通桥梁。对于未使用该产品的企业,可以考虑部署到企业的ESB或其他三方平台上,充分利用现有的服务器资源。但需要注意的是,中间平台是需要开放互联网络权限的,需要做好网络安全防护策略。

• 安全性问题

由于涉及到企业的资金往来,网络安全、信息安全、数据安全必然是重中之重。

银行方面会提供多方位的安全保障措施,包括但不限于绑定企业服务器MAC地址、绑定企业公网IP地址、提供企业唯一 认证 标识、往来数据加密等。

客户端企业则需要注意做好自身服务器的网络安全防护策略,保障数据安全,防止银行认证标识、密钥等敏感数据泄露。

• 兼容性问题

从2019年开始,Oracle就开始对JDK8之后的版本商用收费了。各大厂商也因此基于JSR规范开发了自己的Java JDK和JVM,本案例中的SAP

JVM就是其中之一。这也间接地导致了少部分API的兼容问题。

本文中案例的生产环境接口是基于Https的,在实际使用时无法与银行方建立连接。其根本原因就是SAP JVM和Oracle JVM的

Https连接方式不兼容。笔者耗费了大量精力才解决这个问题,后面会单独发文分享解决过程。

一种基于 Open API 方式的银企直连对接方法 - 封面图
一种基于 Open API 方式的银企直连对接方法 - 封面图

JVM兼容问题

\----------关注我,解锁更多小技巧-------

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「一种基于OpenAPI方式的银企直连对接方法.md」整理生成,仅用于内部技术分享与学习交流。