Biz-SIP金融级业务中台(http://bizsip.bizmda.com)是一套基于领域驱动设计(DDD)架构,能快速构建金融级云原生架构的服务整合中间件,整合了在金融场景里锤炼出来的最佳实践。
Biz-SIP业务中台支持多种报文类型的格式转换器,包括XML、JSON、定长、有分隔符、ISO-8583等报文类型的解包和打包,格式转换器可以在Source模块和Sink服务中进行配置和使用,实现打包(平台标准报文格式转换成外部报文格式)和解包(外部报文格式转换成平台标准报文格式)。
iso-8583类型的格式转换器,能把Biz-SIP内部标准消息报文,根据配置打包成外部的ISO8583格式报文;同时也直接把外部的ISO8583格式报文,解包成Biz-SIP内部标准消息报文。
本节案例中是在Sink服务模块中,配置iso-8583格式转换器,以实现ISO8583格式报文(velocity-split)的打包和解包:
其中,App层是通过Sink透传App服务,直接让调用方通过OpenAPI接口调用Sink服务(iso-8583-sink),Sink服务会把平台内部标准格式(JSONObject对象,内部即JSON报文)进行打包成ISO8583格式报文,传给通讯连接器Connector,原包返回后再解包成平台内部标准格式,响应给调用方。
具体代码和配置可以查看Biz-SIP源代码中的Sample相关测试案例(https://gitee.com/szhengye/biz-sip)
一、Sink层Sink服务的开发和配置
同样,在Biz-SIP配置目录的sink.yml中,配置对应的Sink服务:
- id: iso-8583-sink
type: rest
url: http://bizsip-sample-sink/iso-8583-sink
converter:
type: iso-8583
destination-id: '00010344'
source-id: '42430440'
fields:
- index: 2
length: 19
unfixed: 2
name: accNo2
- index: 3
length: 6
name: processingCode3
- index: 4
length: 12
name: amt_trans4
- index: 5
length: 12
name: amt_settlmt5
- index: 6
length: 12
name: transactionAmount6
- index: 7
length: 10
name: transmsn_date_time7
- index: 9
length: 8
name: transmsn_date_time9
- index: 10
length: 8
name: transmsn_date_time10
- index: 11
length: 6
name: systemTraceAuditNumber11
- index: 12
length: 6
name: time_local_trans12
- index: 13
length: 4
name: date_local_trans13
- index: 14
length: 4
name: date_expr14
- index: 15
length: 4
name: date_settlmt15
- index: 16
length: 4
name: date_conv16
- index: 18
length: 4
name: mchnt_type18
- index: 19
length: 3
name: mchnt_cntry_code19
- index: 22
length: 3