转发农行银企直联XML对接socketSAPEPICSlashout

准备开始在开始之前我们会拿到2个东西,一个是中国农业银行银企通平台(4.70版).msi安装包,另一个是现金管理银企直连接入开发手册V1.2.1.wps接口文档说明开始安装前置机程序,完成之后是这个样子:

组装XML数据看到上图,已经成功的监听到了15999端口,现在我们就要向前置机所在的机器的ip+port的这个URL上推送XML数据,例如:192.168.1.111:15999这里举一个范例:汇兑-单笔对似,xml数据报文是这样要求的。java代码实例:

1//5.汇兑-单笔对私2ApRootroot=newApRoot();3root.setCCTransCode("CFRT21");4root.setAmt("9.10");5builder.setRoot(root);6ApCmpcmp=newApCmp();7cmp.setDbAccNo("361101040010679");8cmp.setDbProv("05");9cmp.setDbCur("01");10cmp.setDbLogAccNo("");11cmp.setCrAccNo("6228453296002816764");12cmp.setCrProv("");13cmp.setCrCur("01");14cmp.setCrLogAccNo("");15cmp.setConFlag("1");16builder.setCmp(cmp);17ApCorpcorp=newApCorp();18corp.setPsFlag("");19corp.setBookingFlag("0");20corp.setBookingDate("");21corp.setBookingTime("");22corp.setUrgencyFlag("0");23corp.setOthBankFlag("0");24corp.setCrAccName("郑春广");25corp.setDbAccName("内猛关仪太彩悟佑慊古丝");26corp.setWhyUse("测试");27corp.setPostscript("测试");28builder.setCorp(corp);安装要求组装数据:

112Strings=builder.toXmlString(builder);3/**4*请求数据:加密标识(1加密,0不加密)+请求xml数据的长度(默认7位,不够补空格)+请求的xml5*@params请求的xml6*@authorjieYW7*@date2018/5/298*@returnjava.lang.String9*/10publicStringgenRequestData(Strings)throwsException{11return"1"+String.format("%1$-6s",s.getBytes("gbk").length)+s;12}跟据交易明细表与ERP对接生成收款单(这里主要说报文提交与读取)

Socket接收端代码:

【讲xml转换成socket套接字段】

socket发送数据将上述组装好的数据通过tcp协议发送给前置机:

1Strings=builder.toXmlString(builder);2ApHttpRequestrequest=newApHttpRequest();3Strings1=request.socketSendAndReceive("192.168.1.111",15999,builder.genRequestData(s));4System.out.println("接受数据:"+s1);

测试结果:

补充代码XML组装:

发送报文:

1publicStringsocketSendAndReceive(Stringurl,intport,Stringdata)throwsException{2System.out.println("请求数据:"+data);3Socketsocket=newSocket(url,port);4OutputStreambw=socket.getOutputStream();5bw.write(data.getBytes("gbk"));6bw.flush();7InputStreamips=socket.getInputStream();8StringBuffersb=newStringBuffer();9intlen=0;10byte[]buf=newbyte[1024];11while((len=ips.read(buf))!=-1){12sb.append(newString(buf,0,len,"gbk"));13}14bw.close();15ips.close();16socket.close();17returnsb.toString();18}

解析XML:

*******术语解释********

1.网银和银企直联的区别1.1网银网银,简单地讲,就是银行在互联网上开展的各种业务,也就是银行客户利用个人计算机通过Internet获得银行的各项服务,银行利用专用的服务器提供各项在线服务。对银行,这种高效、全天候的服务能够吸引更多的用户,而且网上银行本身可以大大削减现有银行众多的分支机构,减少工作人员,提高工作效率。

1.2.银企直联银企直联是一种新的网上企业银行系统与企业的财务软件系统在线直接联接的接入方式。银企直联通过因特网或专线连接方式,实现了银行和企业计算机系统的有机融合和平滑对接。企业通过财务系统的界面就可直接完成对银行账户以及资金的管理和调度,进行信息查询、转账支付等各项业务操作。同时,银企直联可以为企业在其财务系统中开发和定制个性化功能提供支持,具有信息同步、高效简便、个性服务和安全可靠的鲜明特色。银企直联能够做到与企业计算机系统的对接,方便的完成企业系统的与银行有关的交易。

2专业术语2.1接口IP地址种类银行的服务IP,主要是银行内部对银企通服务的IP地址,此IP对于银行来说是确定的,不会随客户的改变而改变。此IP主要用于企业前置机的银行服务程序的接入端,银行对每一个客户安装的企业客户端程序,都需要连接此IP地址。

前置机的服务IP,主要是针对企业客户端的接入地址,此IP地址可以随客户的不同网络进行调整,其服务端口也可依照客户前置机的不同而进行调整。前置机的银行服务程序主要负责数据的加密、验证和转发功能。银行客户端程序连接到银行服务IP,并且对企业程序提供数据的接收和发送功能。所以前置机的银行服务程序一般需要配置两个IP地址,一个是银行的服务IP地址,另一个是对企业提供服务的IP和端口。通常对企业提供服务的IP也是该程序所在前置机的IP地址。

接口的通讯IP,主要是用户企业客户端连接前置机的IP,此IP通常为银行服务程序的IP。

2.2报文所谓报文,就算数据交换双方所共识的一种文本格式,报文作为数据交换是非常重要的,在日常数据交换的过程中,报文必须正确,而且必须与约定的相同。否则,对方将无法明白所收到数据的明确意图。

2.2.1报文种类目前接口经常使用的报文主要包括一下几种:

XML报文:所谓XML,也是一种目前国际标准的文档格式,XML报文的主要优点在于信息明确,便于阅读和理解,而且对于每个字段,其长度也可随时调整。

定长串:此类报文格式主要是通过约定一个长度的信息作为预定的内容,将需要传输的数据通过固定的长度发送给对方,由于长度双方都有约定,所以对方收到此数据后,即可知道固定长度的信息内容。

固定顺序加分隔符(多域串):此报文格式一般需要约定报文的字段的顺序,然后传输数据的各类信息通过分隔符的形式分开,用户通过分析数据分隔符来判定信息的位置,完成数据的传输。

注:以上介绍了几种常用的报文格式,在日常使用过程中,可以将以上种类的报文进行融合,但是一般XML内部可以嵌套使用定长串或者多域串。

2.3通讯方式OLE方式:此类方式一般由银行提供OLE开发控件和调用说明,客户端安装和注册这些控件,按照银行提供的调用说明进行数据的交互,数据的加密、发送、接收和解密。

SOCK通讯:此类方式首选需要银行提供服务的IP地址和端口,客户端将约定的交易报文发送到此IP地址和端口。然后接收银行返回的数据。

2.4银行签约在使用银企直联时,相当于在集团内部有一个银行的柜员,所有发生的交易都由该柜员完成,所谓柜员,就是银行对集团用户的唯一标识号码,有的银行为客户号,有的银行叫做操作员,这些都是银行受理交易的一个接入要素。因为集团所有的帐号都由该柜员管理,所以办理银行签约,就相当于给该柜员(客户号、操作员)于集团的帐号建立操作权限。签约完成后,需要银行根据签约的具体内容进行操作员帐号的初始化工作。完成这些功能,企业就可以以该柜员的身份操作签约的帐号,完成日常的交易。

2.5签约模式目前银行的签约模式主要分类两类,一类为收支分开模式,此类签约模式在银行内部定义了各个帐号的收入类帐号和支出类帐号。此类签约的签约帐号所发生的交易必须严格按照银行内部定义的收支方向进行资金划转交易。另外一类为统一收支模式,此类签约模式在银行内部,签约帐号之间的收支不具备方向性。任何帐号之间都可以进行资金的划转。在对外支付时,只要支付帐号具有对外支付的权限,就可以进行对外支付交易。

2.6资金上划资金上划就是集团内部发生的,集团总帐户收取下属单位的帐户的资金,如果该集团为收支分开模式,则收取的为收入类帐户的资金。如果为统一收支模式,则收取的为该总帐号所有允许划款的子帐户的资金。

2.7资金下拨资金下拨就是集团内部发生的,集团总帐户支付给下属单位的划转交易。

2.8调拨策略调拨策略即用户指定的、具有一定特性的资金划转交易的交易规则,使用调拨策略,接口可自动跟据调拨策略的功能完成资金的划转交易,使用调拨策略的帐户,只限于集团内部签约帐号。

2.9联动下拨联动下拨是指在对外付款的交易发生时,由于子帐户付款,而该子帐户的帐户余额又为零,此时会由接口自动从总帐户向该子帐户进行拨款,使该子帐户的余额满足其支付的金额

————————————————

参考1:

参考2:

参考3:

这个Request类有2个方法:构造方法接受一个InputStream对象(socket中的输入流对象),readHtml()方法是用来读去到底浏览器给我们发送了什么内容(从inputStream对象中获取内容)。

2、然后我们就可以在socket服务端使用Request类了MyServer.java:

5、来到我们的socket服务端代码,现在既要处理输入也要处理输出了MyServer.java:

银企上线后的常见问题:

(1).生产环境应用服务器连接不上前置机服务器

(3).行内支付使用直接支付接口,返回错误信息:收方必须为商户账户

咨询招行技术人员得知是因为我们公司在招行的账户受到限制,收款方必须加入白名单才能打款。询问财务人员,确实如此,经加入白名单后,打款成功。

跨行未受到限制,估计是因为走的是央行的超级网银渠道,所以没有限制。(4).跨行支付收款方行号的问题

跨行支付时需要输入收款行行号,只能输入总行的行号,输入支行的行号报错。商务人员会提供“人行网银互联(跨行清算系统)联行号信息.txt”,其中有各银行及对应的联行号。

THE END
1.服务公告为给您提供更便捷的优质服务,我行将于2024年12月08日凌晨0:00至4:00实施停机维护工作,届时将暂停通过掌银、网银生活缴费渠道缴纳山东省辖内体育彩票费、福彩站点费、电费、城乡居民及灵活就业养老保险、城乡居民及灵活就业医疗保险等业务服务。维护结束后,将立即恢复相关业务服务。 https://www.abchina.com.cn/cn/branch/sd/fwgg/202412/t20241204_2437053.htm
2.对方提供给对公账号,农行,17开头。非网银转账的时候要写连接符网银打款的时候,账号开头是38-1405,里面的-要输上吗?输不输有什么区别吗?https://m.chinaacc.com/wenda/detail/xt/5202519
3.全国农行对公账号统一为17位。全国农行对公账号统一为17位。 A. 正确 B. 错误 题目标签:全国账号如何将EXCEL生成题库手机刷题 如何制作自己的在线小题库 > 手机使用 分享 反馈 收藏 举报 参考答案: A 复制 纠错 举一反三 在我们的日常生活中,充满着各种政府收支活动现象。从老百姓的生活小事到国家大事,大量地依靠着政府提供的财力来https://www.shuashuati.com/ti/e91f0143ec214b9d8d9bf92c0b8b3e47.html
4.互动网出于安全考虑我们不建议您取消这个提醒,这是防范账号被盗的最佳方法。 18、怎样取消成交手机短信提醒? 答:电脑端:登陆进入“我的网上邮市”,点击“消息中心”栏目里面的“我的订阅消息”,把“订阅品种成交、订阅买卖盘品种成交”前面的勾去掉即可。 手机APP:登录点右下角“我的”点右上角“信息”图标,订阅消息栏目http://www.ybk001.com/announcement/62
5.东莞银行企业网上银行常见问题解答8篇原因:可能是客户在市场端开立账号信息不正确,或是由于系统不稳定造成 解决:立即咨询客服,核对客户信息。若由于系统不稳定,请在下一个时间办理 5、出现”卡号与账号不符“: 原因:可能由于客户在农行系统身份证件信息为15位身份证号码 解决:让柜员将客户身份证信息更新为最新18位身份证号码,做到保证市场端开立账号的身https://www.longcan-chem.com/fanwendaquan/gongwenfanwen/65394.html
6.中国农业银行开户行号怎么填写雨落无声 2023-09-04 17:16:14 免费咨询 开户行号是中国农业银行在开设账户时需要填写的一个重要信息。它是一个由12位数字组成的代码,用于标识具体的银行营业网点。正确填写开户行号有助于确保您的账户信息准确无误地传输到相应的银行网点,从而方便您进行后续的交易和操作。在填写开户行号时,需要注意以下几点:1.https://aiqicha.baidu.com/qifuknowledge/detail?id=10057241065
7.关于我行生产系统维护的公告(12月6日8日)四、12月8日1:00至1:10、12月8日2:10至2:20,数字人民币APP农行模块、个人掌银、企业网银、企业掌银、ATM等系统的数字人民币模块,开放银行、二维码、二代支付、语音客服系统-CSR座席模块数字人民币相关服务将各出现1次暂停服务现象,每次影响时长10分钟以内。 https://www.abchina.com/cn/PersonalServices/SvcBulletin/202412/t20241205_2437086.htm
8.农行活动怎么参加?登录网易账号:打开农行快捷活动界面。每个手机号、银行卡都只能参与一次。必须是首次开通农行快捷支付。登录网易账号。使用农行快捷支付,单笔交易满百,就可以砸金蛋。 什么是快捷支付?网易宝快捷支付将您银行卡关联您的网易通行证账户,每次付款只需要输入银行预留手机校验即可付款,该支付方式不需要开通网银即可进行网上支付http://m.qicaisi.com/bk-2683032.shtml
9.农行信用卡知识手持卡人需到农行网点办理签约手续,填写《约定还款申请表》,并提供本人身份证件以及用于还款的借记卡(或准贷记卡)卡号。 *目前只办理人民币账户约定还款业务。 25、已办理约定还款,若相应账户中余额不足,可否先还一部分? 还款账户中的余额要满足持卡人约定还款签约中的还款额,否则不能完成自动扣款。 https://www.360wenmi.com/f/fileqg6kslu5.html
10.巩固拓展脱贫攻坚成果同乡村振兴有效衔接帮扶工作100问17. 什么情况下不能消除风险? 答:不得设置风险消除比例要求,要坚持“七个不消”:①“三保障”和饮水安全未稳定实现的不消。②没有稳定收入来源或大额刚性支出问题未稳定解决的不消。③没有制定并实施“一户一策”帮扶计划的不消。④刚落实帮扶措施还没有见到效果或者帮扶效果不明显的不消。⑤虽已落实帮扶政策https://www.zninfo.gov.cn/zwgk/zfbmxxgk/sxxz/xpzxz/fdzdgknr1255/qtfdxx255/content_6381
11.ting.echo91.cn/mmmj/473116.html输了的要让对方随意处罚作文 巨大的狼根进入 42.66MB 46好评 色狼群交 日本春药精油按摩 麻豆美女被后入 833.38MB 534好评 国产精品?精品 日本无人区码一二三区别 白嫩少妇情久久臀月久久 179.45MB 6222好评 赢咖注册的7IIII2扣 北条麻妃的三级片 黄色在线0万部 064.53MB 4003好评https://ting.echo91.cn/mmmj/473116.html
12.知名银行对公账号位数+编码规则+编码分析(34家)行别代码2位(安徽12开头)+交换号4位+辖带号1位+账号顺序号9位+校验码1位 编码分析攻略: 中国农业银行对公账户共17位,其中1-2位为地区代码(详见代码表),3-6位为网点代码,7-8位为币种,9-10位为账户类型,11-16位为序号,17位为校验位,其中7到10位是0104。需要注意农行银行交易明细中遇有同行的对公账户https://www.yoojia.com/ask/17-12007702098323363232.html
13.新天然气:首次公开发行股票招股意向书股票频道西安市东新街 232 号陕西信托大厦 16-17 楼 新疆鑫泰天然气股份有限公司 招股意向书 发行概况 发行股票类型 人民币普通股(A 股) 发行股数 本次拟发行 4,000 万股 A 股,占发行后总股本的比例为 25% 每股面值 人民币 1.00 元 每股发行价格 【】元 预计发行日期 2016 年 8 月 31 日 拟上市的证券交易所https://stock.stockstar.com/notice/JC2016082400000165.shtml
14.www.scmc农行浙江省分行出台科创贷款尽职免责机制,给予初创期、成长期科创企业更高不良贷款容忍度。 党的二十届三中全会《决定》提出:“完善金融机构定位和治理,健全服务实体经济的激励约束机制。” “中国人民银行将加强与工信、科技、环保等部门的协同合作,进一步增强金融支持的力度、可持续性,加强政策顶层设计,制定做好金融http://www.scmc-xa.com/xxxr/494198.html