SAP与农业银行做银企直联(项目正常使用)

最初是为SAP提供农业银行的SOCKET转WEBService的。其实此JAVA功能可用于任何有需要农行SOCKET转WEBService的需求,并不限于SAP。最新版本的当前已支持所有的农行接口。当然这代码对于JAVA的人来说,应该是很简单的了。

最新版本V2.0请看这里。

由于一个项目上,需要在SAP与农银的银行前置机上进行连接,并从中取银行的交易记录,需求只是取交易记录(其实,只要在JAVA源码中,修改少量的代码,就可以与农业银行提供的所有接口进行SOCKET连接,从而达到SAP与农业银行的完全连接)。

以前也都做个多个SAP与各大银行的银企业直联,包换工行,建行等多家银行的都有做过,但以前做的都是直接调用PI,然后PI如何连接的银行前置机,此种方式操作下,对ABAP来说技术上就没什么问题了,所以一直没太多关注。而这一次的项目上需要直接连接农业银行的前置机(不使用PI),在网上找了几天的资料才发现农业银行的前置机,使用的连接协议是TCP/IP,的SOCKET,而不是以前理解的HTTP方式,但SAP的ABAP当前没办法使用SOCKET连接(据说可以使用JSOCKET,WSF方式连接,但测试了一下没成功),其它接触过的银行都可以使用WEBService连接,就只农行的使用此SOCKET。所以需要在连接银行前置机前面现做一个WEB服务,提供给ABAP调用。就自己用JAVA做了一个SERVICE 调用 SOCKET,并发布出WEBSerice来给SAP使用,通过ABAP调用此WEBSerice来实现。此功能成功在项目上使用,加上ABAP部份功能,一共算了10人天的工时,还是算成功的。

以下是我做的步骤,记录以下

所以设计如下,

银行前置机上提供如下服务:

1.一、安装农业银行前置机服务软件

测试时我使用的是银行提供的:中国农业银行银企通平台(4.6版).msi,本部下载可查看最后下地址。

此软件也可以让农业银相关人员提供最新版本。

由于后期我使用TOMCAT虚拟一个目录连接到此软件的\detail目录,但发现TOMCAT目录设置成中文目录总是出错,修改TOMCAT编码也不行,

1.所以在此把农业银行前置机软件安装到自己的非中文目录   C:\abcBANK  中;

2.前置机软件安装好后在etc/loginset.xml里1改为

0

3.打开前置机软件,设置,并选择“ERP接入”

在系统设置里修改本地服务器地址127.0.0.1为219.142.79.145

交易端口15028

文件端口14029

ERp接口:15999

4.使用银行提供的,客户号(账号),操作员,密码进行登陆。

SAP与农业银行做银企直联(项目正常使用) - 第1张  | 优通SAP

2.二、在此前置机上安用JDK1.7,TOMCAT,安装步骤参看

3.三、JAVA开发WEB Service,并部署WEB 服务。

由于SAP没找到办法通过SOCKET连接农业银行前置机,所在使用JAVA做了一个WEB 服务,与银行前置机放到同一机器上,ABAP调用此WEB服务,JAVA 的WEB 服务通过SOCKET连接农业银行前置机软件来得到数据。

1.JAVA开发连接农业银行的前置机的WEB服务;

2.下载WEB 服务部署到TOMCAT.

4.四、部署文件下载服务

4.1.1.部署服务abcAP,

1.版本V1.0,此版本提供收费下载。内容为我JAVA开发的使用SOCKET连接农业银行前置机的WEBService,的源代码及部署包abcAP。此为收费内容,需要的可付费下载,我能确保此为项目上真实使用的源代码(当前代码只有CQRA10交易,是项目上正常使用的,另外CQRA06JAVA做了但没测试,应该也是可以使用的),但不保证一定提供技术支持,付费自己判断。当然如你们项目如可远程兼职(JAVA开发只限农行连接接口,我是ABAP,主要以ABAP为主),那可以联系我,yan252@163.com.

2.版本V2.0上一版本是以前项目上使用的源代码,这个JAVA代码的好处是对每一个接口都生成一个WSDL,方便在ABAP中生成接口引用,并且代码中可以更直观的查看SOCKET的数据处理步骤,但问题在于需要对每一个接口都要进行开发,所以在新的项目上又重做了一个,这次的使用REST方式,使用时没有WSDL文件,但好处是这个JAVA服务做成了通用的,并支持所有的农行的接口,并且在新接口时JAVA服务不用再进行修改开发,这应该最终版本了,此源码不提供下载,如有需要请联系。

      隐藏内容需要支付:¥100
任何问题请联系yan252@163.com
立即购买
SAP与农业银行做银企直联(项目正常使用) - 第2张  | 优通SAP


下载后,可以直接把
abcAP.war 拷贝到TOMCAT的WEBAPPS目录下,系统会自动完成发布,生成一个abcAP目录,此目录就是生成的服务了。

压缩包中的另外一个目录是JAVA的原代码,可以再次进行二次开发(我不是专业的JAVA人员,这也是第一次把自己做的JAVA功能成功使用于项目,但当前此代码已在某项目上成功运行两年。所以可作为参考),

这时,打开:http://localhost:8080/abcAP/services/SendAndReceive_CQRA10?wsdl,测试自己的WEBSERVICE,应该能正常出现WSDL内容.

4.2.2.设置虚拟目录,用于文件操作

由于我此次要做的是接口是查询交易明细的接口(CQRA10交易,其它的交易码看:CMP2.0公网ERP接入开发手册5.1版.doc),而此接口提供的查询结果是返回的一个文件(其它交易返回的不一定是文件,所以其它交易码的功能可依据需求进行修改),农行的文件放到了前置机的\detail目录下(可参看农行提供的文档),所以需要在TOMCAT中配置一个虚拟目录,当ABAP调用此接口后,得到文件名,再从此虚拟目录读取文件内容。,

写字板打开TOMCAT目录下的\conf\server.xml文件,在前面加入:

这里表示虚拟了目录abcBANK,到指定目录C:\abcBANK\detail.

修改完成后重启TOMCAT,后,IE中打开,http://locathost:8080/abcBANK/****,就能打开C:\abcBANK\detail目录下的文件了。

:此是为虚拟目录做的配置,如使用其它的交易码,不一定需要此配置此虚拟目录,具体可参考源代码就明白了。

八、ABAP代码实现

abap代码就没什么新意了,我是直接HTTP_POST调用 的,这样简单些。具体代码ABAP都会写,网上也很多调用WEBSERVICE的例子,可以网上找。

1.创建维护表,用于保存需要从银行读取数据的银行卡号。

2.创建程序,读取步骤1中的银行卡号,

3.对每一个银行卡号调用函数ZFM_**从WEB服务中读取数

5.相关下载:

1.

链接:https://pan.baidu.com/s/1ZMcbAIVjv7_oeQXyQLo66w

提取码:wsbo

中国农业银行银企通平台(4.6版).msi

农行Resfull 收费说明:

6.服务一

收费2000元,

  • 提供安装农行前置机安装,
  • SOCK服务转Restfull安装(非源码),
  • POSMAN余额查询 ,交易流水查询,支付,支付状态查询四大接口连接测试成功

7.服务二

收费3000

服务一内容,外加提供JAVA的Restfull源代码

8.关于SOCKET

上面用的是JAVA把SOCKET转为WEBSERVICE,但在新版本的SAP中,应该是已支持SOCKET了,只是我没使用过,可以参看DEMO_SEND_AMC,DEMO_APC_TCP_CLIENT,以下是一个网上找到的例子也可参考。


,

SAP与农业银行做银企直联(项目正常使用)》有 6 条评论

  1. 匿名说道:

    请问您有做过农行银企直连代发工资的业务么?

    1. yangsen说道:

      农行用的就是文中所说的SOCKET方式,SAP不能直接访问,我用的就是文中所说的自己JAVA做WEBSERVICE,然后提供给SAP使用,至于你所说的“代发工资”那只是农行接口里的其中一个交易类型,交易码可问农行对应的接口方,他们会提供的,然后你按交易码所需的接口要求处理就成了。

    2. yangsen说道:

      此代码提供的是JAVA连接农业银行的WEBService的JAVA源码。此源码中以其中CQRA10交易(查询交易明细,此交易码可在农业银行提供的接口文档中找到)的功能,我另外做的是ABAP连接此WEBService的功能,我主要工作做的是ABAP,但ABAP连接WEBService没什么提供的,所以在此没提供,

    3. yangsen说道:

      代发工资,就是对私支付接口,农行一定是可以对私支付的了,

  2. Tim说道:

    有一些请教的问题,发送您邮箱了。。。麻烦您查看,并指导下!

yangsen的回复 取消回复

你的email不会被公开。